我们在用SSH登陆服务器时候,总是要输入密码,其实我们可以通过上传秘钥的方法来实现免密登陆,下面是教程:
1 :验证ssh远程登录,未作免密处理的机器,登录时,是需要输入密码的,如图:
2 :本地系统执行 ssh-keygen -t rsa 命令,生成密钥文件:
3 :在相应的目录下查看生成的密钥文件,其中:id_rsa为私钥文件,id_rsa.pub为公钥文件。
4 :本地机器执行命令如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器IP, 将公钥文件传输的远程机器,并生效:
5:再次使用已经做免密处理的用户登录远程机器,已经不需要密码了,免密登录处理完成。
6:查看远程机器的~/.ssh/authorized_keys文件,可以看到对应的变化:本地机器的公钥已经增加到远程机器的配置文件中了。
这里解释下:如果你现在以本地的root身份生成密钥并上传到服务器的话,你用root去SSH连接服务器的话是不需要密码的,但是别的用户连接是仍然需要密码的:
因为免密码登录的处理是用户对用户的,切换其他用户后,仍然需要输入密码,这个时候可以用别的用户再次生成密钥上传到服务器就行。
公钥传到远程机器并生效的操作,可用其他方式实现,如scp后修改authorized_keys。远程机器的.ssh目录需要700权限,authorized_keys文件需要600权限。参考文章:
https://blog.csdn.net/furzoom/article/details/79139570
https://jingyan.baidu.com/article/c275f6ba08267ae33c756758.html