前言
大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第62篇文章。
专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
另外为了帮助大家更好的学习英语,我创建了 从零开始学英语社区,欢迎点击进入社区,一起交流学习:
点击可直达:
从零开始学英语社区
文章目录
- 前言
- 一. SSH命令介绍
- 二. SSH语法格式及常用参数
- 三. 参考案例
- 3.1 查看ssh版本
- 3.2 链接到远程主机
- 3.3 连接远程主机并指定端口
- 3.4 通过ssh运行远程的shell命令
- 3.5 设置登录时候的提示信息
- banner 和 /etc/motd的区别:
- 总结
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. SSH命令介绍
SSH(Secure Shell)是Linux系统中用于远程访问主机、传输数据的协议。通过使用SSH协议,可以在不同的计算机之间建立一个安全的通信管道,保证数据传输过程的安全性,并能够有效地防止未经授权的访问和利用攻击者的拦截和窃听。
二. SSH语法格式及常用参数
ssh常用的语法格式:
ssh [options] [user@]hostname [command]
常用参数如下:
参数 | 描述 |
---|---|
-p | 指定SSH服务器的端口号,默认值是22; |
-l | 指定登录远程主机的用户名; |
-q | 启用安静模式,不显示连接过程的提示信息; |
-X | 开启X11转发模式,允许在SSH会话中运行图形化界面程序; |
-i | 指定私钥文件的路径; |
-C | 启用压缩传输,加快数据传输速度; |
-t | 强制分配伪终端,即远程终端的操作和本地终端一样; |
-N | 不执行远程命令,仅作为端口转发或隧道使用; |
-f | 在后台运行SSH会话,不占用终端; |
-v | 启用详细模式,显示SSH连接和认证过程的详细信息。 |
三. 参考案例
3.1 查看ssh版本
查看ssh的版本信息,可以使用:-V参数
[root@mufeng163 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@mufeng163 ~]#
linux一般都自带openssh,只要能够远程登录,就说明ssh是已经开着的
3.2 链接到远程主机
连接远程主机的命令格式:
- 方法一:
ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port
如果用root进程登录远程主机可以这样:
[root@mufengssh]# ssh 192.168.0.22
普通用户登录是这样的:
[root@mufeng163 ~]# useradd mufenggrow && echo 123456 | passwd --stdin mufenggrow
更改用户 mufenggrow 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@mufeng163 ~]# ssh mufenggrow@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
mufenggrow@127.0.0.1's password:
[mufenggrow@mufeng163 ~]$
第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连
接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
- 方法二:
ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
此方法了解即可:
例:ssh -l mufenggrow 192.168.0.22
注:-l login_name
3.3 连接远程主机并指定端口
首先修改一下ssh的端口号:
[root@mufeng163 ~]# vim /etc/ssh/sshd_config
[root@mufeng163 ~]# grep ^Port /etc/ssh/sshd_config
Port 10022
修改完成后进行重启:
[root@mufeng163 ~]# systemctl restart sshd
开始登录:
ssh 192.168.1.163 -p 10022
3.4 通过ssh运行远程的shell命令
[root@mufeng163 ~]# ssh -t -p 10022 mufenggrow@127.0.0.1 'touch aaa;ls -l'
mufenggrow@127.0.0.1's password:
总用量 0
-rw-rw-r--. 1 mufenggrow mufenggrow 0 6月 10 10:42 aaa
Connection to 127.0.0.1 closed.
-t选项分配了一个伪终端PTY,而-p选项指定了SSH连接使用的端口。命令ls -l放在单引号中传给远程服务器执行。
3.5 设置登录时候的提示信息
首先编辑一个文件,如bannertest.txt,文件内容自行定义。然后打开/etc/ssh/sshd_config文件并查找下面这样的行,把地址写对:
[root@mufeng163 ~]# echo aaa > /root/bannertest.txt
[root@mufeng163 ~]# vim /etc/ssh/sshd_config
[root@mufeng163 ~]# grep ^Banner !$
grep ^Banner /etc/ssh/sshd_config
Banner /root/bannertest.txt
[root@mufeng163 ~]# systemctl restart sshd
[root@mufeng163 ~]# ssh 127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
aaa
root@127.0.0.1's password:
Last login: Sat Jun 10 10:53:35 2023 from 192.168.1.4
可以看到aaa,显示在文本中了。
banner 和 /etc/motd的区别:
SSH协议在建立连接之前,可以通过banner的形式向连接方发送欢迎信息或者警示信息;而/etc/motd属于Linux系统中用于向登录用户显示某些消息的文件。
banner在客户端连接时就会被发送,不需要用户登录即可显示,通常被用于在SSH连接之前向用户展示重要的信息或者警告。在SSH服务器中,可以通过编辑/etc/ssh/sshd_config文件来配置banner信息。
而/etc/motd 则是在用户登录后显示的一条信息,包括系统版本、当前登录用户、主机名等信息。系统管理员可以通过编辑/etc/motd文件来定制显示的信息,以便向用户提供更多信息。/etc/motd重启或动态更新后将重新显示。
因此,banner和/etc/motd之间主要的区别是banner是在连接之前显示的欢迎信息或警告信息,而/etc/motd则是在登录之后以交互式的方式向用户显示信息。
总结
ssh命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~