需求:当需要管理多台服务器的时候,来回切换主机的时候输入密码是件很麻烦的事,这时候便可以利用ssh-keygen免密码登录。


简单原理机过程:若A需要免密码登录B,则使用ssh-keygen在A上生成相应密钥对,再使用ssh-copy-id将生成的公钥发送到远程主机A上。


                    具体操作

A上执行:

[root@chen ~]# ssh-keygen 
#生成相应密钥对,若初次使用,则会出现几次停顿,直接敲回车保持默认就行了

[root@chen ~]# ssh-copy-id root@119.29.197.99
#执行此命令过后,输入远程主机B的root密码,ssh-copy-id工具即可将本机的公钥发送过去,被配置
好相应权限(这些都不用管,保持默认就好)

[root@chen ~]# ssh root@119.29.197.99
Last login: Fri Nov  4 10:39:53 2016 from 117.174.247.158
[root@VM_116_108_centos ~]# 
#配置完成后,直接ssh远程主机B即可完成免密码登录


提示:若之前有个密钥登录的配置,再次配置时,会出现以下错误:

Now try logging into the machine, with "ssh 'root@192.168.5.129'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

错误翻译:

现在尝试登录到机器,用“ssh'root@192.168.5.129'”,并检入:


   .ssh / authorized_keys


以确保我们没有添加您没有期望的额外的密钥。


错误原因:

之前有过相应配置,再次配置时,当执行ssh-copy-id  root@192.168.5.129,并且输入对应root密码后,其实就已经配置成功了,这里只是提示我们,尝试ssh登录以下远程主机,确保没有增加额外的密钥(由于之前有过类似操作,主机检测到相应文件中还有类似的密钥)。所以,此时我们只需尝试ssh登录远程主机就行了。

[root@chen ~]# ssh root@119.29.197.99
Last login: Fri Nov  4 10:39:53 2016 from 117.174.247.158

能免密钥登录,说明配置没问题。