与另一个用户的 SSH 密钥身份验证

Wad*_*ams 6 ssh authentication public-key

我对一些基于 ssh 密钥的身份验证感到困惑。

假设我有:

Host A:
user tom
  .ssh
     tom_private_key
     tom_public_key



Host B:
user shared
   .ssh
     shared_private_key
     shared_public_key
Run Code Online (Sandbox Code Playgroud)

我想以用户身份从主机 A SSHshared到主机 B。

我是否必须将shared用户的私钥复制到我的 ssh 目录,然后使用 -I 参数或设置一个 SSH 配置文件,以便当我以 user 身份通过 ssh 连接到该主机时shared,使用shared用户的私钥?

如果不复制私钥,就没有办法做到这一点吗?我不这么认为,但如果可以的话,我显然希望避免复制私钥。

Cod*_*ome 5

您需要使用您~/.ssh/authorized_keys希望有权访问共享帐户的所有用户的公钥填充主机 B 上的文件。只有客户端需要用户的私钥。服务器只需要知道允许连接到给定帐户的公钥。

用户很少需要共享私钥(众所周知的 Vagrant 私钥是一个说明性的例外),或者将用户的私钥放在服务器上。每个私钥对于每个用户来说应该是唯一的,并且应该保留在他或她的客户端计算机上。即使您忽略此最佳实践,您仍然不需要将共享用户的私钥放在服务器上;您只需将私钥的副本分发给将使用该密钥连接到共享帐户的每个用户。