因此,我使用以下命令设置了无密码的ssh:如何设置无密码的SSH登录?
设置好之后,我希望我不需要密码来ssh。我的问题是,在我第一次连接ssh时,它将要求我输入密码,但是在此之上的其他会话将不要求输入密码。
我已经检查了我的sshd_config以确保它包含:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
可以肯定的是,我的权限是正确的,因为如果没有,那么无密码的ssh将根本无法工作。
为了给这个问题增加更多的“乐趣”,我注意到当我重新启动计算机(客户端计算机或ssh服务器计算机)时,有时它可以工作。然后,当我关闭计算机并在第二天再次尝试时,它不再起作用。也许这是完全随机的,但这是我注意到的。
这是加密home的常见问题,已经在Unix上得到了很多回答,例如,在Ubuntu官方文档中也对此进行了解答。
这可能是由于您的主目录(以及因此的密钥)在登录期间无法访问这一事实造成的。这可能是由于以下事实造成的:登录后,从网络驱动器上挂载了您的主目录(在共享系统上),或者您的主目录已被加密(通常是工作站的安装)。
解决这个问题很复杂,但是我将进行一些讨论。解决方案是将其移动
AuthorizedKeysFile
到其他位置,这些位置将可以访问,也可以将其移至我们的密钥全局存储(/etc/security/authorized_keys
),或者将某种SSO管理系统(IPA,LDAP)从目录服务器获取密钥(是,可以是本地)。取决于您对目标系统有多少控制权。可能最好的解决方案是将密钥存储在其他位置,更改以下位置的值
sshd_config
:AuthorizedKeysFile /etc/ssh/%u/authorized_keys
无论如何,如果您要移动自己的authorized_keys
,请确保他们具有适当的权限并考虑到以下事实:如果您使用公共密钥登录,将无法访问您的主目录(该目录已用密码加密!),除非您可以更改其加密方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句