我需要使用 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_keys
hostB 上 user2 的文件中。