当使用带有私钥/公钥的 ssh 时,如何使用与原始机器不同的用户连接到目的地?

当使用带有私钥/公钥的 ssh 时,如何使用与原始机器不同的用户连接到目的地?

我需要使用 user2 从 hostA 连接到 hostB,而我使用 user1 连接到 hostA。

我已经在 hostA 上为 user1 运行了 ssh-keygen,并将 id_rsa.pub 中生成的公钥复制到 hostB 上 user2 的 authorized_keys 中。

然后我尝试使用以下命令从 hostA 连接到 hostB:

   $user1@hostA> ssh user2@hostB

我仍然收到密码请求:

   user2@hostB's password:

如果我尝试在两个主机上使用同一个用户进行连接,它可以正常工作:

   $user1@hostA> ssh user1@hostB
   Enter passphrase for key '/home/user1/.ssh/id_rsa':

我错过了什么?

答案1

如果 sshd 不喜欢这些权限,它将忽略您的文件。我可以通过设置“user2”的 ~/.ssh 目录为所有人可写来复制此行为。

答案2

您需要告诉您的 ssh 使用 user2 的私钥而不是您(user1)的私钥:

$user1@hostA> ssh -i /path/to/private_key_of_user2 user2@hostB

答案3

您还可以将 user1 的公钥放在authorized_keyshostB 上 user2 的文件中。

相关内容