ssh配置免密后还需要输入密码的问题

问题:

ssh-keygen -t rsa

生成秘钥,然后通过

ssh-copy-id -i ~/.ssh/id_rsa.pub   用户名@ip地址 

发送公钥到需要免密登录的主机用户。但完成后通过

ssh  用户名@ip地址

还是需要输入密码。

解决:

按网上的几个方法试,怎么都不行。最后发现不能照抄,还是要先了解原理,看懂下图就差不多了。

简单的说就是A生成公钥后把公钥的串(字符串)添加到B的authorized_keys文件中。

然后检查发现这个命令 “ssh-copy-id -i ~/.ssh/id_rsa.pub   用户名@ip地址” 有时候执行之后并没有在B的authorized_keys文件中添加公钥(可以在命令执行前后查看一下authorized_keys文件是否有变化)。问题就比较明显了。既然ssh-copy-id不行,那就直接scp。把A的公钥id_rsa.pub通过scp拷贝到B,然后用cat命令把内容添加到authorized_keys文件最后: cat id_rsa.pub >> ~/.ssh/authorized_keys。(据说vi可能会产生多余的换行,最好用cat)

最后验证通过。

另外要注意的是权限问题。.ssh目录要700,authorized_keys文件要600。也有说是755和655点,反正后面两个不能有写权限。

参考文档:

https://blog.csdn.net/van_2009/article/details/90755721

https://www.cnblogs.com/wanigna/p/9936985.html