1) 可以防止“中间人”这种攻击方式
2) 可以只用一个口令就登录到所有你想登录的服务器上
现在假设需要从客户端A机登录到服务器B机,同时我们假设在A机上使用用户user进行登录,就需要做以下几步即可实现:
1、在A机上user用户下,执行ssh-keygen命令,如果是ssh1就不带参数,系统会提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
[直接Enter就是了]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[这个地方就是设置使用什么密码进行登录,无密码登录直接Enter就是了]
Your identification has been saved in /home/user/.ssh/id_rsa.
[这个就是你的私钥]
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
[这个就是你的公钥]
2、好了,现在就可以把你的公钥交给你要登录的B机了,把id_rsa.pub文件拷贝到B机上对应的/home/user/.ssh/目录下,并且改名为authorized_keys,记得把权限设置成644,否则ssh不会正常验证
3、ok,完成,是不是很简单。现在测试一下,在A机上ssh B,直接就登录了,没有密码输入的提示
注意:如果出现Agent admitted failure to sign using the key错误时,解決方式 使用 ssh-add 指令將私鑰 加進來 (根据个人的密匙命名不同更改 id_rsa)
# ssh-add ~/.ssh/id_rsa
------------------------------------------------------------------------------------------------------------------------------
PS:其实最简单的方式是,在客户机执行ssh-copy-id "root@192.168.1.1 -p2222"。输入root帐号验证密码就可以建立信任关系了。