基于密钥的认证( publickey人证):客户端产生一对公共密钥,将公钥保存到将要登录的服务器 上的那个账号的家目录的:.ssh/authorized_keys文件中。认证阶段:客户端首先将公钥传给服务器 端。服务器端收到公钥后会与本地该账号家目泉下的authorized_kevs中的公钥进行对比,如果不 相同,则认证失败;否则服务端生成一段随机字符串,并先后用客户端公钥和会话密钥对其加密 发送给客户端。客户端收到后将解密后的随机字符串用会话密钥发送给服务器。如果发回的字符串 与服务器端之前生成的一样,则认证通过,否则,认证失败。
注:服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息 ,其中包含可以再 次认证的方法列表。客户端从认证方法列表中选取一种认证方法再次进行认证,该过程反复进行。 直到认证成功或者认证次数达到上限,服务器关闭连接为止
ssh免密登录:准备两台Linux虚拟机,第一台可以免密登录到第二台机。
ssh禁止root用户远程登录haha用户可以登录
自服务端先建立haha用户:
useradd haha
echo 123456 | passwd --stdin haha
客户端生成公私钥:
ssh-keygen -t rsa -b 2048
# -t 指定秘钥类型 -b 秘钥长度
将公钥文件发送给服务端:
ssh-copy-id -i /root/.ssh/id_rsa.pub haha@192.168.88.136
ssh禁止root用户远程登录允许haha用户远程登录:
vim /etc/ssh/sshd_config
PermitRootLogin noAllowusers haha
在客户端尝试ssh连接服务端:
ssh haha@192.168.88.136