如何在没有密码的情况下进行 ssh(设置 ssh 密钥不起作用)?

jon*_*rry 3 linux ssh

我想在没有密码的情况下进行 ssh、scp、git fetch 等操作。我看到了之前的问题,并关闭了有关此问题的问题,但建议似乎是使用 ssh 密钥。但是,在设置 ssh 密钥后,我仍然被要求输入密码(不是要求我的私钥密码;而是要求我的登录密码)。我应该如何设置它以便它只使用我的私钥进行身份验证?

Ign*_*ams 5

~/.ssh在客户端和服务器上适当地设置(0700) 及其内容 (0600)的权限。


Bil*_*hor 5

ssh 对authorized_keys文件的所有权感到偏执。如果 root 以外的人可以更改文件,则它不会使用它。它检查整个目录树,因此如果有人可以执行诸如替换您的主目录或 .ssh 目录之类的操作,它将不会使用它。一直检查权限authorized_keys/. 如果没有设置粘性位,这些都不应该是组或世界可写的。(我的 /home 目录的权限是drwxrwxr-t。所有权必须是 root 或用户。authorized_keys 文件的权限不应允许按组或世界访问。

使用ssh -v而不是测试ssh应该会有所帮助。使用ssh-copy-id将密钥复制到远程系统是一个好主意。