如何调试公钥 SSH 身份验证失败

Dom*_*c P 5 ssh public-key

我正在尝试设置无密码 SSH 登录,但似乎无法使其工作。这是我到目前为止所做的:

  1. 用于ssh-keygen -t rsa生成一对密钥
  2. 在服务器上创建~/.ssh/authorized_keys并将公钥转储到该文件中
  3. chmod 700 ~
  4. chmod 700 ~/.ssh
  5. chmod 600 ~/.ssh/authorized_keys

当我尝试使用私钥登录时,我得到以下输出ssh -vvv

debug1: Next authentication method: publickey
debug1: Trying private key: /path/to/private-key
debug1: read PEM private key done: type RSA
debug3: sign_and_send_pubkey: RSA [KEY_FINGERPRINT_HERE]
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: password,publickey
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
Run Code Online (Sandbox Code Playgroud)

我很确定服务器正在运行 FreeBSD,但它不是我的,而且我没有 root 访问权限。知道这里出了什么问题或者我可以尝试什么来让它工作吗?

Dom*_*c P 3

好吧,这个问题的“解决方案”最终与主持人有关。该服务器由一家名为 HybridCluster 的公司运营。我仍然不确定为什么,但为了在他们的服务器上使用公钥身份验证,必须通过其控制面板界面将公钥添加到文件中,而不是手动添加到~/.ssh/authorized_keys文件中。

我认为这与他们动态切换硬件有关,因此主机指纹发生变化,导致密钥被拒绝,但我真的不能肯定。

不管怎样,感谢所有提供帮助的人,希望这能帮助将来一些可怜的 HybridCluster 用户。