1.前言
当有多台服务器的时候,每次登录都需要输入密码,时间长了晚上都会做噩梦。可以采用ssh免秘钥登录。要系统学习ssh可以man ssh-kengen,里边有好多选项,本文介绍了快速做秘钥验证,我们公司就是采用的以下方法
2.操作
(1)生成秘钥
[root@server1 .ssh]# ssh-keygen //生成公钥和私钥
[root@server1 .ssh]# ls /root/.ssh/ //查看生成的公钥和私钥
(2)部署秘钥
[root@server1 .ssh]# ssh-copy-id -i "-p 22 192.168.11.140" //-p 端口,要登陆的服务器ip
3.验证
[root@server1 .ssh]# ssh 192.168.11.140 //登陆,需要加指定端口的话ssh -p 端口 远端服务器ip
4.解析
(1)当执行完ssh-keygen命令后,会在/root/.ssh/目录下生成两个文件,id_rsa和id_rsa.pub。id_rsa是私钥,id_rsa.pub是公钥。
(2)当执行完ssh-copy-id命令后,当你输入yes的时候会在本地服务器上生成一个known_hosts文件,这个文件会把远程计算机的相关信息记录在这个文件里,确保你下次登录的时候是相同的服务器,避免遭受hijack之类的***。如果登录的服务器信息有所变动,那你登录的时候就会提示你,然后登录失败。当你输入远端服务器的密码之后会在远端服务器生成一个authorized_keys,有了这个文件,下次登录就不需要再次输入密码。
(3)公司有两台服务器A,B需要来回切换公网ip,做的秘钥验证,刚开始把A服务器上的这四个文件复制到B服务器上,但是不能用,know_hosts文件里记录的是A服务器的信息,重新做了登了一下,选择yes之后就可以了,因为秘钥文件一样,只需记录下B服务器的信息即可
转载于:https://blog.51cto.com/zhangdl/1792706