您的位置:首页 > 运维架构 > Linux

Linux 通过rsa公钥实现ssh免密码登录

2016-08-12 17:40 676 查看



1、ssh免密码登录

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/目录下去实现。
 
 

2、192.168.121.212上面生成密钥

先以root登录192.168.121.212服务器,执行如下命令
cd /root/.ssh/
ssh-keygen -t rsa -P ''
 
执行完后,会生成id_rsa、id_rsa.pub这两个文件,其中id_rsa.pub是公钥,id_rsa是密钥。
 
 

3、copy公钥到10.14.13.16

(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
 

4、验证无密码登录

# 验证成功,OK
[root@dns .ssh]# ssh tomcat@10.14.13.16
[tomcat@azure _web1_13_16 ~]$
 
 

5、登录到10.14.13.16,设置写权限

# 需要登录到10.24.13.16,然后赋予.ssh目录的写权限
chmod 700 /home/tomcat/.ssh
 
# 这里有的是需要600生效,有的需要700生效,有的需要750才能生效,可以逐步尝试
chmod 750 /home/tomcat/.ssh/authorized_keys
 
 
 

6、调试方法汇总

(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无密码登录;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: