利用ssh-keygen免密码登陆

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


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


                    具体操做服务器

A上执行:ssh

[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便可完成免密码登陆


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

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_keysit


以确保咱们没有添加您没有指望的额外的密钥。ast


错误缘由:class

以前有过相应配置,再次配置时,当执行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

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