我们可以跳过关于“将 SSH 密钥添加到 ssh-agent”的部分,而只生成密钥并添加到 GitHub 吗?
Posted
技术标签:
【中文标题】我们可以跳过关于“将 SSH 密钥添加到 ssh-agent”的部分,而只生成密钥并添加到 GitHub 吗?【英文标题】:Can we skip the part about "Adding your SSH key to the ssh-agent" but just generate the key and add to GitHub? 【发布时间】:2020-06-18 07:43:51 【问题描述】:我一直只是生成ssh密钥,然后添加到GitHub就完成了:我可以克隆或推送到GitHub并完成所有任务。
但现在我看到“Adding your SSH key to the ssh-agent”,我可以跳过整个部分,一切似乎仍然有效。为什么需要这样做?如果不执行此步骤会怎样?
【问题讨论】:
unix.stackexchange.com/a/72558 【参考方案1】:您不必必须使用 SSH 代理。
通常有一些充分的理由使用代理。这在很大程度上取决于您对所使用的计算机链中的每台计算机的信任程度,当您从运行交互式 shell 命令会话的任何系统转到运行git fetch
或任何其他命令的系统时。
请参阅链接的答案,或在https://unix.stackexchange.com/q/72552/162084 上查看完整的问题和答案,了解代理为您所做的事情的描述。
这里的一个常数是您必须信任至少一个机器来为您保存您的私钥(私钥/公钥对)。您也可以加密私钥,这样您就不必 100% 信任该机器 - 您只需要足够信任它就可以首先安装加密的密钥。
如果您已加密密钥,您必须在每次需要时输入密码/密码以解密它。使用代理,您可以将密钥解密一次到代理中,然后让代理处理它。
如果您使用计算机链,您可以使用ssh <machine>
并让代理转发将各种面向密钥的请求发送回原始机器(您在该机器上'已将密钥解密为代理)。这些请求本身并不实际发送 key,因此私钥仍然保密,现在只有您和代理知道。 (好吧,你、特工和任何破坏了你和/或特工和/或在任何可能捕获密钥的地方插入了秘密通道的间谍。)
如果您没有加密您的私钥并将其直接存储在向 GitHub 发出 Git 操作的计算机上,则无需代理。如果您为机器用户使用部署密钥,您可能只想存储未加密的私钥:这样的密钥的目的是允许机器上的进程无需任何额外的hoop-jumping 即可访问它。但是这种密钥的安全级别相对较低,这就是为什么它是 machine user 和 deploy key 仅由这个系统使用:如果它被泄露,你只需扔掉它离开并生成一个新的部署密钥。只有 机器 使用它,所以机器会自动使用新机器。
【讨论】:
以上是关于我们可以跳过关于“将 SSH 密钥添加到 ssh-agent”的部分,而只生成密钥并添加到 GitHub 吗?的主要内容,如果未能解决你的问题,请参考以下文章