如何使无密码登录工作


12

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

ssh-keygen
ssh-copy-id username@hostname

我将密钥的位置保留为默认位置,并且未设置任何密码短语。

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


2
请参阅unix.stackexchange.com/tags/ssh/info…让我们将此作为参考问题,可以将其他问题作为重复问题予以解决。
吉尔(Gilles)“所以,别再邪恶了”,

Answers:


8

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

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

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

嗨,为什么authorized_keys这个小组不应该写?SSH是否出于安全考虑而拒绝这样做?
2016年

1
@YdobEmos任何可以写的人都可以在其中authorized_keys添加自己的密钥,从而登录到该帐户。因此,只有用户必须被允许。(如果该组中没有其他用户,则具有组可写的文件实际上是安全的,但是当组成员资格可以来自网络数据库时,很难可靠地检测到。)
Gilles'SO-不要邪恶

1

目标的主目录为755 drwxr-xr-x。将其更改为可写组可775 drwxrwxr-x破坏无密码设置。


相同的问题尚未解决。

您的意思是即使将目录设置为可写目录,也无法获得无密码的登录工作?
tshepang 2015年

是的-请参阅unix.stackexchange.com/q/208152/11085(CentOS 7 64位),我尝试使用id_rsa密钥登录,但始终失败。


0

假设使用RHEL / CentOS,并假设您具有用户newuser要ssh到的远程服务器的管理员访问权限。

获得newuser's现有的东西id_rsa.pub并做好准备。

按照步骤:

useradd newuser
mkdir /home/newuser/.ssh
vi /home/newuser/.ssh/authorized_keys
# copy newuser's id_rsa.pub into authorized_keys and save
chmod 640 /home/newuser/.ssh/authorized_keys
chmod 700 /home/newuser/.ssh/
chmod 700 /home/newuser/
chown newuser:newuser -R /home/newuser/

newuser尝试登录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.