使用不同的密钥处理一组服务器内的 SCP

使用不同的密钥处理一组服务器内的 SCP

我正在使用 ubuntu 18.04 在 VPN 上与一组服务器合作,并且对于每个服务器我都有一个不同的密钥文件。但是,当我尝试安全地复制文件(例如在服务器之间安全地传播 munge 密钥)时,我被拒绝,因为我没有合适的密钥(至少我认为这是原因,它返回“权限被拒绝(公钥)”)。

在每个服务器上都保留我的私钥可能是一种不好的做法?将文件复制到本地计算机,然后将其复制到其他服务器是一件麻烦事,而且我也不确定这样做是否安全。

如何正确处理?我可以使用每台服务器上的用户(如 munge)在它们之间进行复制吗?如果不是复制到任何位置,则复制到某些指定文件夹,然后我可以稍后使用 sudo cp?有没有不是漏洞的选项?

答案1

使用 ssh (scp 是 ssh 的一个分支) 的基于密钥的身份验证是公钥加密的问题。您个人拥有一个私钥,并保密,并将公钥分发给所有人。

因此,为了回答您的问题,您不应该也不需要多个私钥,一个就足够了。然后,您将公钥上传到所有服务器。您应该将私钥的备份保存在安全的地方,并使用密码加密。

其次,将私钥存储在您正在访问的服务器上违背了公钥加密的理念;您没有对私钥保密。您的私钥应该安全地放在您身边,并对所有人保密;只有您才应该拥有私钥,其他人都不应该拥有。

跨服务器使用相同的用户名和公钥也是一个好习惯。

因此,请妥善保管您的单个私钥,并将公钥分发给您想要访问的所有服务器。现在,您可以使用同一个私钥登录所有服务器!

答案2

如果您需要在服务器之间交换数据,您可以查看scp -3 server1:path1 server2:path2。它将传输数据并使用您的主机作为中间人(服务器之间无需直接连接)。

您还可以使用为每个服务器块设置的选项配置.ssh/config文件:IdentityFile

Host server1
  IdentityFile ~/.ssh/file1
Host server2
  IdentityFile ~/.ssh/file2

相关内容