两台服务器: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 ~]#
已经无需输入密码直接登陆了。
之前想使用ssh-agent方法,可是各种资料都试过了,都没有实现,可能是我的环境哪里设置的跟大家的不一样,等查出了结果会再记录。
目前我的环境使用上面的方法实现不输入密码是成功的,暂时还没有发现这个方法有什么弊端。
以上方法是我在网上查资料看到的,资料地址:http://www.opsers.org/linux-home/server/ssh-on-a-linux-system-key-authentication-ssh-agent-authentication.html。只是结合了我的环境把服务器名字改了一下。
结合我之前发的帖子(http://bbs.csdn.net/topics/390536091?page=1#post-395203472),其他服务器的操作和web01服务器一样。
记录下来,留作备用。