root登录192.168.121.212,然后以tomcat帐号ssh远程登录10.14.13.16上,不需要输入密码,需要达到如下效果:
[root@dns .ssh]# ssh tomcat@10.14.13.16 [tomcat@azure _web1_13_16 ~]$ |
大概思路就是需要用生成rsa的密钥,然后将生成的公钥copy到远程10.14.13.16上的/home/tomcat/.ssh/目录下去实现。
先以root登录192.168.121.212服务器,执行如下命令
cd /root/.ssh/
ssh-keygen -t rsa -P ''
执行完后,会生成id_rsa、id_rsa.pub这两个文件,其中id_rsa.pub是公钥,id_rsa是密钥。
(1)没有authorized_keys文件
# 注意,要远程copy成authorized_keys文件
scp id_rsa.pub tomcat@10.14.13.16:/home/tomcat/.ssh/authorized_keys
(2)已经存在authorized_keys文件
先将公钥copy进去:scp id_rsa.pub tomcat@10.14.13.16:/home/tomcat/.ssh/id_rsa.pub_212;然后登录进去将公钥写入authorized_keys的末尾:cat id_rsa.pub_212 >> authorized_keys
# 验证成功,OK
[root@dns .ssh]# ssh tomcat@10.14.13.16
[tomcat@azure _web1_13_16 ~]$
# 需要登录到10.24.13.16,然后赋予.ssh目录的写权限
chmod 700 /home/tomcat/.ssh
# 这里有的是需要600生效,有的需要700生效,有的需要750才能生效,可以逐步尝试
chmod 750 /home/tomcat/.ssh/authorized_keys
(1)在192.168.121.212上用ssh -i查看密钥是否生效
[root@dns .ssh]# ssh -i/root/.ssh/id_rsa.pub.192.168.121.212 tomcat@10.14.13.16
Enter passphrase for key'/root/.ssh/id_rsa.pub.192.168.121.212':
Enter passphrase for key'/root/.ssh/id_rsa.pub.192.168.121.212':
tomcat@10.14.13.16's password:
Last login: Thu Aug 11 22:01:08 2016 from 192.168.121.212
[tomcat@azure_lvdi_dbm1_13_16 ~]
(2)在192.168.121.212上用ssh -v查看登录路径
ssh -v tomcat@10.14.13.16
(3)在10.14.13.16上面查看远程登录自己的log详细情况
# 如果ssh登录有啥异常信息,一般都可以在这里面看得到,这个文件很管用
vim /var/log/secure
PS:如果有看到看到/home/tomcat/id_rsa报警告信息too open然后ssh登录失败的话,需要收回/home/tomcat/id_rsa的权限,将id_rsa私钥要设置成600权限才能用ssh无密码登录;