我有一个 ubuntu 16.04 服务器安装,最初仅使用 root 用户安装,因此 root 用户主目录是/root
。如果我添加另一个用户(例如 bob),则 bob 主目录/home/
将按预期创建。如果我想为 bob 添加一个用于 ssh 的公钥,我可以添加/home/bob/.ssh/authorized_keys
bob 公钥并将其放入授权密钥文件中。到目前为止这是正确的方法吗?问题是当我尝试时
ssh [email protected]
我明白了
Permission denied (publickey)
目录.ssh
权限设置为700,authorized_key
文件权限设置为600。在我的sshd_config
密钥文件路径是默认的
#AuthorizedKeysFile %h/.ssh/authorized_keys
我将 ssh 日志记录设置为详细,但它只显示
Failed publickey for....
我可能做错了什么?它只是寻找/root/.ssh
密钥文件吗?
答案1
如果您根据 sshd_config 文件使用then,则服务器正在查找正确的位置(即)。ssh [email protected]
/home/bob/.ssh/authorized_keys
但是,根据您的描述,我无法判断您粘贴到authorized_keys 文件中的密钥实际上是否与客户端尝试使用ssh 的密钥相同。从客户端计算机使用将确保 ssh 客户端使用的公钥正确添加到服务器的authorized_keys 文件(对于用户 bob),而不是手动将其粘贴到authorized_keys 文件中。ssh-copy-id [email protected]
答案2
验证您使用的密钥是否正确是第一步。另请检查 sshd 配置以确保启用公钥身份验证:
RSAAuthentication yes
PubkeyAuthentication yes
然后还要检查是否有任何“允许/拒绝”设置,例如“AllowGroups”、“DenyGroups”、“AllowUsers”和“DenyUsers”,这些设置将阻止不属于该组或用户的任何人登录。另一个设置是“ AuthenticationMethods”可能会阻止公钥身份验证单独工作。