OpenSSH是SSH协议的免费开源软件,提供该协议的软件还有Telnet。
软件名称:Openssh-server
作用:让对方远程连接自己的主机。ssh未开启,其他主机无法连接自己,但自己可以连接其他主机,即ssh软件限制的是其他软件,而非本主机。
配置文件: /etc/ssh/sshd_conf
默认端口:22
客户端命令:ssh
查询该软件是否安装的命令
[root@workstation ~]# rpm -qa | grep openssh
利用SSH命令连接真实主机和虚拟机
- 打开虚拟机,进入root用户
- 进入管理网络连接的编辑器
[root@workstation ~]# nm-connection-editor
- 删除原来的网络xxxxzzzz(方法:单击左下角的
-
符号,,在弹出的对话框中单击delete) - 新建一个网络
(1).单击左下角的+
符号,然后在弹出的对话框中单击Create
(2).新建一个网络名,在此处我命名为xxxxzzzz
;Device选择默认的值。
(3).在菜单栏选择IPv4 Settings,将Method修改为manual
。
(4).在Address栏单击Add,添加新的IP地址、掩玛。
注意:网关虽然不填写,但是需要单击一下,否则无法保存。 - 保存。
- 返回到shell中,可以看到在
nm-connection-editor
下面自动出现一系列配置语句 - 在虚拟机ping真实主机的ip
- 在真实主机ping虚拟机的ip
- 在虚拟机利用ssh连接真实主机
连接成功!!!
注意:如果是首次连接一个ip地址,需要进行身份认证。
为了模拟首次连接,先删除根目录下的.ssh
文件。
[root@workstation ~]# ls -a ##在根目录下查看所有文件
. .bashrc Downloads original-ks.cfg Templates
.. .cache .esd_auth Pictures Videos
anaconda-ks.cfg .config .ICEauthority .pki
.bash_history .cshrc .local Public
.bash_logout Desktop .mozilla .ssh
.bash_profile Documents Music .tcshrc
[root@workstation ~]# rm -fr .ssh/ ##删除.ssh文件
[root@workstation ~]# ls -a ##再次查看根目录下所有文件(.ssh文件已被删除)
. .bash_profile Desktop .local .pki
.. .bashrc Documents .mozilla Public
anaconda-ks.cfg .cache Downloads Music .tcshrc
.bash_history .config .esd_auth original-ks.cfg Templates
.bash_logout .cshrc .ICEauthority Pictures Videos
使用ssh命令进行远程连接。(首次需要认证,第二次仅需密码即可登陆)
[root@workstation ~]# ssh root@172.25.254.62 ##第一次连接
The authenticity of host '172.25.254.62 (172.25.254.62)' can't be established.
ECDSA key fingerprint is SHA256:1H1ZWRXiMfZdzo+i5q3ohcZogZ0gkgCbiaDCQzac46c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.254.62' (ECDSA) to the list of known hosts.
root@172.25.254.62's password:
Last login: Tue Jan 21 00:56:57 2020 from 172.25.254.162
[root@foundation62 ~]# exit
logout
Connection to 172.25.254.62 closed.
[root@workstation ~]# ssh root@172.25.254.62 ##第二次连接
root@172.25.254.62's password:
Last login: Tue Jan 21 01:02:36 2020 from 172.25.254.162
[root@foundation62 ~]#
如果执行ssh -l root ip地址
时,返回ssh:connect to host ip地址 port 22:No route to host
,则需要查看火墙是否允许ssh。(哪一边连不上关闭那一边的火墙)。
ssh命令
使用ssh连接远程用户的命令
1. ssh -l 远程用户名 ip地址
2. ssh 远程用户名@ip地址
查看主机被哪些用户登陆过
- 首先在workstation中执行
w -i
命令 - 此时,显示仅有一个主机连接了root用户。
- 用真实主机远程登录workstation里的root用户,然后在workstation中执行
w -i
命令。 - 比之前多了一个用户,它的ip地址是 真实主机的地址。
后台运行
在真实主机登陆虚拟机的root用户,然后执行gedit
命令
可以发现shell被占用,要令执行远程命令时不占用本地shell,可以使命令在后台执行。
可以看到,此登陆方式不占用本地shell,但仅完成gedit
命令,之后自动退回本地主机,不用执行exit
或logout
命令。
另外,此登陆方式最后必须加上要在后台运行的命令,否则会报错: