ssh 公钥认证

ssh 公钥认证

我尝试配置 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

相关内容