【问题标题】:How do I send someone my SSH public key? [closed]如何向某人发送我的 SSH 公钥? [关闭]
【发布时间】:2015-06-17 12:04:10
【问题描述】:

我需要将我的 SSH 公钥发送给我的一位客户,但我不太确定如何执行此操作。我已经在我的计算机上创建了一个 SSH 密钥对,但现在我卡住了。

【问题讨论】:

  • 通常,您会通过您认为安全的渠道发送重要公钥。例如,您使用 usb 棒 亲自给它并检查校验和是否仍然正确,这样也没有人篡改 usb 棒。

标签: file ssh send ssh-keys public-key


【解决方案1】:

如果您生成了一个密钥对,您应该有两个文件 id_rsaid_rsa.pub(请注意,如果您指定了 id_rsa,它可能会被替换为其他名称)。

公钥(即*.pub 文件)是要共享的,因此您应该将其发送给客户。

但是请注意,尽管此文件是公开的,但您的客户收到您生成的文件也很重要。如果有人要修改文件,他们可能会冒充您的服务器,这意味着存在安全问题。因此,由您决定共享此文件的安全介质:这可能是手到手的物理 USB 密钥、安全消息服务或您与客户之间的任何其他安全通信渠道。

【讨论】:

  • 好的。所以只需通过电子邮件或其他方式发送该文件?
  • 因为它是一个公钥,它不应该被加密,它只允许验证你的私钥(永远不应该公开共享)所以是的,你可以通过电子邮件发送它。
  • 好的。最后一个问题。如果我想通过电子邮件发送,如何附加公钥文件,因为它在隐藏文件夹中?
  • @statox:通过简单的电子邮件发送的问题是,中间人攻击并不安全。假设 Trudy 希望干扰 AliceBob 的通信。她捕获了包含公钥的电子邮件,并将其替换为自己的密钥,她还存储了自己的密钥。现在她用自己的密钥向 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 哈希值,然后通过电话验证部分哈希值或类似。
    猜你喜欢
    • 2013-04-20
    • 2021-04-03
    • 2021-11-27
    • 2021-12-15
    • 2011-04-19
    • 1970-01-01
    • 2015-07-15
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多