在运维或者项目实验中经常会有需要远程登录的情况,一遍遍的输入密码很麻烦,这里运用几步就能实现无密码登录远程主机。
首先有A(192.168.0.1)、B(192.168.0.2)两台主机,(实验环境,centos6.4 kernel-2.6.32-279.el6.x86_64)A主机为了能够登录B主机,需要进行如下操作:
一、ssh-keygen
ssh-keygen
默认选择rsa加密方式。
Enter file in which to save the key (/root/.ssh/id_rsa):
这里按确认保存在默认路径。
若id_rsa文件存在可按“n”取消生成
Enter passphrase (empty for no passphrase):
这里按确认跳过,因为我们是无需密码的登录。
Enter same passphrase again:
同样,确认跳过。
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
98:aa:e5:16:99:eb:a1:1c:80:cb:4d:f1:59:45:c9:f4 root@minion006
The key's randomart image is:
+--[ RSA 2048]----+
| ++. |
| .o. |
| . . E |
|. o oo |
|o . =o S |
|.oo +. |
|....+o |
| . *o. |
| +oo |
+-----------------+
此时,公钥和私钥已经生成,关于公钥私钥原理请看:http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html
公钥文件:id_rsa.pub
私钥文件:id_rsa。
二、ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.2
此时会让你输入密码,键入B机的ROOT密码即可。
在B机的~/.ssh/目录下会生成authorized_keys的文件。
若要反向无密码登录,反过来执行一遍即可。
三、多台主机之间无密码登录
可以A机对自己生成一套无密码登录,然后将id_rsa、id_rsa.pub、authorized_keys拷贝到目标主机,即可实现无密码互信功能。
若是多台虚拟机之间无密码互信,可在自己主机生成相应文件,clone即可。