我正在尝试设置基于 SSH 密钥的登录从服务器A到服务器B。
我ssh-keygen
在服务器 A 上运行并用于ssh-copy-id
将 id_rsa.pub 复制到服务器 B。当我尝试ssh user@serverB
从服务器 A 复制时,我不断收到错误:
Permission denied (publickey).
我已经仔细检查过/etc/ssh/sshd_config file
以确保一切设置正确。还要在两台服务器上禁用 SELinux。知道什么可能导致这个问题。
答案1
事实证明,我登录的新服务器(服务器 A)上的 RSA 密钥的大小比我登录的旧服务器(服务器 B)可以处理的大小更大。我在新服务器上生成了 ed25519 密钥并将其添加到authorized_keys 文件中。开始放弃 RSA 密钥的充分理由。
答案2
您需要检查:
- 服务器B可以接受的密钥类型
- 如果 ssh pubkey 已正确应用于您尝试使用该密钥登录的用户的authorized_keys 文件(通常
~/.ssh/authorized_keys
) - 私钥的权限(不需要向其他用户公开)
- 文件的权限
authorized_keys
(同上)。 - 文件的所有者
authorized_keys
(必须是用户)。
输出会更有帮助,但目前,这就是我能想到的。