![ssh 公钥认证](https://linux22.com/image/799424/ssh%20%E5%85%AC%E9%92%A5%E8%AE%A4%E8%AF%81.png)
我尝试配置 ssh 以使用公钥认证
/etc/ssh/sshd_config 有这些参数。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
但系统仍提示我输入密码。如果我使用
PasswordAuthentication no
我无法登录
有什么建议吗?
它有效但仅适用于 root 用户。
我的问题是,我有这个参数
PermitRootLogin 编号。
如果我使用,我可以使用 root 用户密钥登录
PermitRootLogin 是的。
系统中只有一个/root/.ssh目录,该目录中有一个authorized_keys文件
如果此系统中没有每个用户的 home/$USER/.ssh 目录和 authorized_keys 文件,我该如何将其添加到其他用户?
有没有办法为每个用户进行配置?我需要为每个用户提供不同的 authorized_keys 文件。
是否可以配置不同的主机、域或 IP?类似于 httpd.conf
答案1
密钥验证总是在密码验证之前尝试,因此如果提示您输入密码,则密钥验证失败。最常见的原因是客户端和服务器端文件的所有权或权限不正确。
在客户端和服务器上,该~/.ssh
目录必须归您所有并且只能由您访问:
chown -R $USER ~/.ssh
chmod u=rwX,g=,o= ~/.ssh
在客户端,私钥必须由您拥有,并且只有您可以访问:
chmod u=rwX,g=,o= ~/.ssh/id_rsa
在服务器上,授权密钥文件必须由您拥有并且只能由您访问:
chmod u=rwX,g=,o= ~/.ssh/authorized_keys