如何使无密码登录工作

tsh*_*ang 12 ssh key-authentication

我生成了一个密钥并将其复制到我的目标:

ssh-keygen
ssh-copy-id username@hostname
Run Code Online (Sandbox Code Playgroud)

我将密钥的位置保留为默认值,并且没有设置任何密码。

在那之后的一小段时间里,我能够在ssh username@hostname没有被提示输入密码的情况下,由于某种原因它停止工作。

Gil*_*il' 8

如果公钥验证不起作用:确保在服务器端,您的主目录 ( ~)、~/.ssh目录和~/.ssh/authorized_keys文件都只能由它们的所有者写入。特别是,它们中的任何一个都不能被组写入(即使用户在组中是单独的)。chmod 755或者chmod 700可以,chmod 770不是。

出现问题时要检查的内容:

  • 运行ssh -vvv可以看到很多调试输出。如果您发布了一个问题,询问为什么您无法使用 ssh 连接,请包含此输出(您可能希望对主机名和用户名进行匿名化)。
  • 如果可以的话,请检查服务器日志,通常在/var/log/daemon.log/var/log/auth.log或相似。
  • 如果公钥身份验证不起作用,请再次检查权限,尤其是组位(见上文)。