目录
前言
今天就来搞懂通过添加公钥实现ssh免密登录服务器这件事儿!
正文
无论是你服务器开发人员,还是运维人员,在实际使用过程中,都会遇到这样的问题——我需要通过本地shell登陆远端的服务器。
首先,我们需要搞清楚这其中的原理:我们在本地生成本机的公钥和私钥,使用如下命令:
ssh-keygen -t rsa
一路回车即可。
最后,默认的公钥和私钥存储在本地目录下的 ~/.ssh 文件夹下。
使用相应的命令查看及其结果:
liuzhen:.ssh lz$ ls
id_rsa id_rsa.pub known_hosts
其中,公钥的内容可以给大家看一下(私钥要保留好呦!):
liuzhen:.ssh lz$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGHloOJMIfOmN7TCvKMsP6/f8Kea08ZcgG76jDypPgfDFVRvalZtmfz9jNjyuCq6IIs4DbPiOrHTKUJ4gt+c/JxG4/DltG
dCZ1RI4nrKMm2KoLSHFKI/zLDfztM7K/UhR3zcufWTCY8AHPLIj69j9qa66naY61r+
iDcJ7I/3Jk4IQu/xYC/Ov5B933XO6r+U6SOoR/GVf1dKAlMS2SKwp2zMmoAgMIykm
Wv+TqGqAGBXg3AhWACLIJFZzu2+nsKj2a5NSBa5K9WqFmq2I92nyhStaKwRVUX
XUjGAMbSQdWa23fDL9O8eLGGTuBDAnLK1RcsF+kzT54NUOkd7HrZ lz@***.com
然后,我们把公钥交给另一台服务器,当本机去远程连接另一台服务器时,另一台服务器会使用公钥与本服务器的私钥配对,如果配对成功,就能连接成功。
那么,我们具体应该怎样操作呢?
请从如下几个方面考虑!
1. 确认.ssh目录权限必须是700
该目录的地址:
~/.ssh
截图参考:
2. 确认authorized_keys文件权限必须是600
该文件的地址:
~/.ssh/authorized_keys
截图参考:
3. 修改StrictModes属性
默认StrictModes属性是 yes,需要修改成 no。
该文件的地址:
/etc/ssh/sshd_config
截图参考:
4. 启用AuthorizedKeysFile配置
配置项AuthorizedKeysFile默认是注释的,需要取消注释。
该文件的地址:
/etc/ssh/sshd_config
截图参考:
5. 重启ssh服务
执行如下命令来重启ssh服务:
service sshd restart
然后,重试ssh登陆命令。
6. 终极大招
执行如下命令:
ssh-copy-id root@172.31.*.123
福利
最后,送一波儿福利。。。
福利一
华为云免费服务器(一个月)
福利二
《7天轻松入门Python》
福利三