ssh如何创建无密码密钥(ssh连接不用输入密码) .
两台服务器:sms01,web01。
背景:web01服务器上有各种处理方式脚本,现在,我需要在sms01服务器上创建一个脚本,来调用web01服务器上的处理方式脚本(完全由脚本来执行这些过程)。sms01服务器和web01服务器之间已经创建好了信任关系。
问题:在sms01服务器上执行命令:ssh web01,需要输入web01的root用户密码。可是因为全程完全执行脚本,不能在中途再手动输入密码。所以就需要一个不输入密码的形式。
不输入密码形式的方法:
1.创建密钥
[root@sms01 ~]# ssh-keygen //创建密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //密钥保存位置,直接回车
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:
fc:c9:fe:e9:a0:d4:30:96:28:0a:f9:c6:e4:8d:ec:0a root@sms01.opsers.org
[root@test ~]#
2.把公钥上传到web01服务器上
[root@test ~]# ssh-copy-id -i .ssh/id_rsa.pub web01
15
root@192.168.6.10′s password: //web01服务器密码
Now try logging into the machine, with “ssh ’192.168.6.10′”, and check in:
.ssh/authorized_keys //公钥在web01服务器上的位置和文件名
to make sure we haven’t added extra keys that you weren’t expecting.
3.登录web01服务器,确认公钥被传到了web01上
[root@sms01~]# ssh root@web01
root@web01′s password:
Last login: Mon Apr 25 14:00:51 2013 from sms01
[root@web01 ~]# ls -l .ssh/authorized_keys
-rw——-. 1 root root 402 4月 25 14:06 .ssh/authorized_keys
[root@yufei ~]#
4.配置sshd_config
[root@web01 ~]# cd /etc/ssh/
[root@web01 ssh]# cp sshd_config sshd_config.org
[root@web01 ssh]# vim sshd_config
是下面这两句话有效
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
5.保存后,重新启动sshd服务
[root@web01 ssh]# service sshd restart
6.直到5步骤,设置完成。验证:
[root@web01 ssh]# exit
logout
Connection to web01 closed.
退出web01服务器,回到sms01服务器
[root@sms01 ~]# ssh root@web01
Last login: Mon Apr 25 14:07:29 2013 from sms01
[root@web01 ~]#
已经无需输入密码直接登陆了。