1 所需要的环境
一台作为SSH服务器
一台作为SSH客户端,使用密钥连接SSH服务器
2 原理 SSH登录除了传统的密码登录,可以使用密钥文件登录,结合PAM模块,也可以实现双因子 登录等。
3 以下操作使用服务器进行
编辑SSH配置文件
vim /etc/ssh/sshd_config
4 删除#号
找到这一行,把前边的#号删掉
5 重启ssh服务
systemctl restart sshd
6 以下操作使用客户端进行
生成SSH登录的密钥对
ssh-keygen -t rsa
7 查看生成的密钥
ls -l /root/.ssh/
8 以下操作使用客户端进行
使sftp连接服务器
sftp root@106.14.249.107
输入yes
输入服务器密码
9 上传公钥文件
put /root/.ssh/id_rsa.pub 然后退出sftp客户端 exit
10 配置服务器公钥 cat /root/id_rsa.pub >> ~/.ssh/authorized_keys
11 以下操作使用客户端登录
指定私钥文件登录
ssh -i /root/.ssh/id_rsa root@106.14.249.107(自己服务器的ip)
12 此时我们可以看到直接登录进了服务器,并没有输入密码。因为我们使用了证书验证
总结
在使用私钥证书登录时,我们也可以给私钥证书加上密码,此时不是验证服务器的密码,而是验证私钥证书的加密密码。
同理在Windows下,也可以使用ssh工具,如xshell实现ssh的密钥登录,有兴趣可以自己尝试。