#################
#### openssh ####
#################
一、##### openssh ####
当主机中开启openssh服务,那么就对外开放了远程连接的接口
#openssh服务的服务端
sshd
#openssh服务的客户端
ssh
二、####在客户端连接sshd的方式 ####
ssh 服务端用户@服务端ip地址
例如
ssh [email protected] ##在客户端用ssh命令连接172.25.0.10主机的root用户
[root@localhost ~]# ssh [email protected]
The authenticity of host '172.25.254.200 (172.25.254.200)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? ##当当前主机第一次连接陌生主机时
##会自动建立.ssh/know_hosts
##这个文中记录的是连接过的主机信息
[email protected]'s password: #输入密码连接成功
Last login: Fri Mar 30 02:05:52 2018 from 172.25.254.100
[root@localhost ~]# exit #表示退出当前连接
logout
Connection to 172.25.254.200 closed.
例:
查看desktop虚拟机ip:
主机连接虚拟机:
主机正常连接2个虚拟机:
注意:以上连接方式是不能打开远程主机的图形功能的如果需要打开远程主机图形功能需要输入 -X
如:ssh -X [email protected]
例:
在desktop虚拟机上打开gedit:
却发现desktop虚拟机上打开的gedit进程属于server虚拟机:
server虚拟机上结束gedit进程,desktop虚拟机的gedit进程也随之结束,验证了打开的gedit进程属于server虚拟机:
三、
#### 给ssh服务添加新的认证方式 KEY认证####
1.生成锁和钥匙
[root@localhost ~]# ssh-keygen ##生成密钥的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##保存加密字符的文件用默认
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): #可以为空,如果想为空必须大于4位
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. ##私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. ##公钥
The key fingerprint is:
00:4f:b0:72:40:9f:a6:fb:91:86:d2:69:bc:7c:75:5f root@localhost
The key's randomart image is:
2.加密ssh用户的认证
#在服务端
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id ##加密命令
-i ##指定密钥
/root/.ssh/id_rsa.pub ##密钥
root ##加密用户
172.25.254.200 ##主机ip
3.验证
#解密文件传输到客户端
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
#在客户端
ssh [email protected] #连接不需要密码
#在服务端
rm -fr /root/.ssh/authorized_keys ##当此文件被删除,客户端解密文件失效
#在服务端
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys ##从新生成锁文件,解密文件功能恢复
例:
生成密钥的命令:
加密root用户的认证:
没把钥匙给desktop虚拟机客户端前,desktop虚拟机连接server服务端需要输入密码:
把钥匙传给desktop客户端后,desktop客户端可以免密连接server服务端:
服务端authorized_keys删除后,客户端解密失败:
四、
####sshd的安全配置 ####
禁止原始认证方式
vim /etc/ssh/sshd_config
78 PasswordAuthentication no|yes ##开启或关闭ssh的默认认证方式
48 PermitRootLogin no|yes ##开启或关闭root用户的登陆权限
79 AllowUsers westos ##用户白名单,当前设定是只允许westos登陆
80 DenyUsers linux ##用户黑名单,当前设定是只不允许linux登陆
例:
1、80行改成no:
在desktop客户端把钥匙删除后无法通过认证连接server服务端:
2、关闭root用户的登陆权限:
root用户无法登陆,student用户可以登陆:
3、用户黑名单,当前设定是只不允许student用户登陆:
student用户无法登陆,其他用户可以登陆:
4、AllowUsers westos ##用户白名单,当前设定是只允许student用户登陆
student用户可以登陆,其他用户不可以登陆: