ssh免密登录不生效的原因总结
程序员文章站
2022-04-30 11:11:58
...
生成公钥
ssh-****** -t rsa -P '' (注:最后是二个单引号,表示不设置密码)
然后分发公钥到目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方机器IP
如果失败,有可能是以下原因:
1、权限问题
.ssh目录,以及/home/当前用户 需要700权限,参考以下操作调整
sudo chmod 700 ~/.ssh
sudo chmod 700 /home/当前用户
.ssh目录下的authorized_keys文件需要600或644权限,参考以下操作调整
sudo chmod 600 ~/.ssh/authorized_keys
2、StrictModes问题
编辑
sudo vi /etc/ssh/sshd_config
找到
#StrictModes yes
改成
StrictModes no
3.系统中有多个认证**文件
多个认证**文件,我们可以使用参数 -i 来指定需要传输至目标机的公钥文件,如:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
192.168.246.170系统中两个认证**文件,路径如下:
/home/jianzhihua/.ssh/id_rsa.pub
/data/jianzhihua/.ssh/id_rsa.pub
在192.168.246.170执行:
$ ssh-copy-id -i /data/jianzhihua/.ssh/id_rsa.pub [email protected]
从192.168.246.170登录到192.168.246.171,终端执行:
$ ssh [email protected]
Enter passphrase for key '/home/jianzhihua/.ssh/id_rsa.pub': ##系统提示输入私钥,可不论输与不输都不能直接登录
处理方法:
在192.168.246.170终端执行:
$ eval $(ssh-agent)
$ ssh-add
Identity added: /data/jianzhihua/.ssh/id_rsa (/data/jianzhihua/.ssh/id_rsa)
因为:
$ grep jianzhihua /etc/passwd
jianzhihua:x:1039:1039::/data/jianzhihua:/bin/bash
当然你也可以使用/home/jianzhihua/.ssh/id_rsa.pub,在192.168.246.170终端操作如下:
$ ssh-add -k /home/jianzhihua/.ssh/id_rsa
Identity added: /home/jianzhihua/.ssh/id_rsa (/home/jianzhihua/.ssh/id_rsa)
登录时:
$ ssh -i /home/jianzhihua/.ssh/id_rsa [email protected]