所以在过去的两个小时里我一直在尝试通过 localhost 通过 SSH 连接到我自己的计算机。但它说“权限被拒绝(公钥)”。
我在 VirtualBox 上运行 Ubuntu 14 LTS。这是我当前的设置:
我的/home/用户名目录中有“.ssh”文件夹,其中包含文件“known_hosts”、“initialkey”和“initialkey.pub”。我生成了初始键带有 RSA 的文件。
我的“/etc/ssh”文件夹还有两个 RSA 文件 - “ssh_host_rsa_key”和“ssh_host_rsa_key.pub”(这些 RSA 密钥与/home/用户名/.ssh文件夹)。 “sshd_config”文件有禁用密码验证,禁用 root 登录以及两者启用公钥和 RSA 身份验证。 “AuthorizedKeysFile”的值设置为“/root/.ssh/authorized_keys”。
在“/root/.ssh/authorized_keys”中,我复制了上面提到的“initialkey.pub”文件。
我已经检查了权限,使所有用户的权限至少为“r”。
尽管如此,问题仍然存在。也许我对 SSH 进入本地计算机的工作原理的理解是不正确的。截至目前,我相信“openssh 服务器”正在将我的机器变成服务器,并通过使用ssh 本地主机命令,我什至可以从同一台机器登录到该服务器。
更新: 通过更改主目录的权限已解决该问题。我使用了命令chmod 750 $HOME,这解决了问题。感谢大家的意见。
答案1
SSH 对密钥非常偏执。如果路径上的任何目录可由所有者以外的任何人写入,则它将不信任该密钥。检查路径中所有目录的权限。权限应该类似于drwxr-xr-x
或drwxr-x---
。诸如drwxrwxr-x
或 之类的权限drwxrwxrwx
将导致密钥不受信任。