我想我知道答案,但我还是会问......
我被授予使用 SSH 访问远程服务器的权限。谁应该生成私钥/公钥对?我的理解是,我应该生成密钥对并将公钥提供给远程服务器的管理员。
实际情况是,有人通过纯文本电子邮件向我发送了公钥和私钥,并要求我使用它们。我认为这是一件非常糟糕的事情,对吗?
答案1
谁生成公钥/私钥对并不重要(只要密钥生成和处理正确完成)。
重要的是私钥的保密性。
当私钥不离开您的机器时,更容易保持机密性(因此在客户端机器上本地生成并共享公钥更安全)。
附在电子邮件中发送的私钥将会被泄露,除非它受到安全共享的高熵密码的保护。
答案2
这取决于。
服务器管理员可以为您生成新的公钥/私钥并将其发送给您。同时,他会将您的公钥配置为授权登录服务器。安全问题是,他也可以保留私钥并“窃取”您的身份以连接到此服务器。
另一方面,您可以自己生成公钥/私钥,并仅将您的公钥发送给服务器管理员,以便他可以将其配置为授权登录服务器。
从技术上来说,两种方法都是可行的,但我更喜欢第二种选择。
唯一的限制是您必须使用与服务器上设置兼容的类型(dsa、rsa 等)生成密钥。您可以询问服务器管理员接受哪些密钥算法。
答案3
是的,您应该生成公钥/私钥对。这是确保私钥安全的最简单方法。使用 ssh 密钥的期望是,只要您的密钥满足这些主机管理员的安全要求(算法和密钥长度),您就可以在多个远程主机上重复使用同一个密钥。您的工作是确保您的私钥安全。如果其他人正在生成您的私钥,他们可以访问允许使用您的公钥的任何机器。因此,如果其他人正在生成您的密钥对,您不应在任何地方重复使用此密钥对。
是的,通过电子邮件发送私钥是一件非常糟糕的事情。您应该重新开始使用一组新密钥,尤其是因为生成一组新密钥非常容易。
仅发送公钥。通过电子邮件发送未加密的公钥是可以的。