如何向某人发送我的 SSH 公钥? [关闭]
Posted
技术标签:
【中文标题】如何向某人发送我的 SSH 公钥? [关闭]【英文标题】:How do I send someone my SSH public key? [closed] 【发布时间】:2015-06-17 12:04:10 【问题描述】:我需要将我的 SSH 公钥发送给我的一位客户,但我不太确定如何执行此操作。我已经在我的计算机上创建了一个 SSH 密钥对,但现在我卡住了。
【问题讨论】:
通常,您会通过您认为安全的渠道发送重要公钥。例如,您使用 usb 棒 亲自给它并检查校验和是否仍然正确,这样也没有人篡改 usb 棒。 【参考方案1】:如果您生成了一个密钥对,您应该有两个文件 id_rsa
和 id_rsa.pub
(请注意,如果您指定了 id_rsa
,它可能会被替换为其他名称)。
公钥(即*.pub
文件)是要共享的,因此您应该将其发送给客户。
但是请注意,尽管此文件是公开的,但您的客户收到您生成的文件也很重要。如果有人要修改文件,他们可能会冒充您的服务器,这意味着存在安全问题。因此,由您决定共享此文件的安全介质:这可能是手到手的物理 USB 密钥、安全消息服务或您与客户之间的任何其他安全通信渠道。
【讨论】:
好的。所以只需通过电子邮件或其他方式发送该文件? 因为它是一个公钥,它不应该被加密,它只允许验证你的私钥(永远不应该公开共享)所以是的,你可以通过电子邮件发送它。 好的。最后一个问题。如果我想通过电子邮件发送,如何附加公钥文件,因为它在隐藏文件夹中? @statox:通过简单的电子邮件发送的问题是,中间人攻击并不安全。假设 Trudy 希望干扰 Alice 与 Bob 的通信。她捕获了包含公钥的电子邮件,并将其替换为自己的密钥,她还存储了自己的密钥。现在她用自己的密钥向 Bob 发送一封电子邮件。现在,对于 Alice 发送给 Bob 的每封电子邮件,她都可以修改内容,并使用自己的密钥将其退出,这样 Bob 就会认为这是 Alice 的密钥。 @statox:问题在于如何传递加密密钥。为了安全地进行,或者您将其存储在经过认证的 https 网络服务器上,以便至少认为通信是相当安全的,或者您亲自或亲自提供密钥。例如使用 Zimmermann-Sassamann 协议的keysigning party。【参考方案2】:这已经晚了,但如果您使用的是基于 unix 的系统,那么发送隐藏文件可能会更容易。
只要做:
pbcopy < ~/.ssh/id_rsa.pub
这会将您的公钥复制到剪贴板。因此,基本上只需在要粘贴密钥以发送密钥的任何位置粘贴即可。
【讨论】:
pbcopy
是仅适用于 Mac 的工具,该问题没有具体提及正在使用的 Mac。
可以使用 wl-clipboard 包:cat ~/.ssh/id_rsa.pub | wl-copy
【参考方案3】:
默认情况下,您在 Unix/Linux/OS X 上的 SSH 公钥位于您的 HOME 目录中的 .ssh/
文件夹中的 id_rsa.pub
文件中。因此,您可以毫无问题地发送该文件,因为您的私钥在 id_rsa
中,因此您的凭据不会暴露。
所以基本上要么发送~/.ssh/id_rsa.pub
文件,要么在终端执行:
ssh-add -L
命令并复制打印的行,以便您可以粘贴到您的电子邮件中。
【讨论】:
【参考方案4】:它是一个公钥,所以理论上你使用的频道不必加密。
然而,它必须是防止潜在攻击者篡改密钥/消息的通道。在最坏的情况下,攻击者可能会用他自己的公钥替换您的公钥,从而有可能代替您获得访问权限。
所以在实践中,最好还是使用加密通道。至少确保您的电子邮件客户端使用与邮件服务器的加密连接;并希望您的邮件服务器也使用加密连接进一步发送电子邮件。
【讨论】:
为了尽量减少成功篡改 MITM 的机会,我建议简单地通过电子邮件发送公钥,在收到后计算其两端的 sha256 哈希值,然后通过电话验证部分哈希值或类似。以上是关于如何向某人发送我的 SSH 公钥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章