我们可以跳过关于 "Adding your SSH key to the 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?

我一直只是生成 ssh 密钥,然后将其添加到 GitHub 就完成了:我可以克隆或推送到 GitHub 并完成所有任务。

但现在我看到“Adding your SSH key to the ssh-agent”,我可以跳过整个部分,一切似乎仍然有效。为什么需要这样做?如果不完成这一步会怎样?

不必使用 SSH 代理。

通常有一些很好的理由使用代理。这在很大程度上取决于您对您使用的计算机链中的每台计算机的信任程度,当您从正在 运行 进行交互式 shell 命令会话的系统转到您 运行 git fetch 或其他任何命令。

查看 phd 链接的答案,或 https://unix.stackexchange.com/q/72552/162084 上的完整问答,了解代理为您所做的工作的描述。

这里的一个常量是你必须信任至少一台机器来保存你的私钥(private/public 密钥对)给你。您 也可以 加密私钥,这样您就不必 100% 信任该机器 — 您只需要足够信任它,以便首先安装加密密钥。

如果您已加密密钥,则每次需要时都必须输入password/passphrase才能解密。使用代理,可以把密钥解密一次放到代理里,然后让代理处理。

如果你用电脑链,可以用ssh <machine>代理转发发送各种key请求返回原始机器(您已在其上将密钥解密为代理)。这些请求本身实际上并不发送 密钥 ,因此私钥仍然保密,现在只有您和代理知道。 (好吧,你,特工,以及任何腐蚀你的间谍 and/or 特工 and/or 在任何可能捕获密钥的地方插入了一个秘密通道。)

如果您没有加密您的私钥并将其直接存储在向 GitHub 发出 Git 操作的计算机上,则不需要代理。如果您正在为 机器用户 使用 部署密钥,您可能只想存储未加密的私钥:这样一个密钥的目的是允许机器上的进程访问它而无需任何额外 hoop-jumping。但是这样一个密钥相对较低的安全级别是为什么它是 machine userdeploy key 只被这个系统使用的原因:如果它受到威胁,您只需将其丢弃并生成一个新的部署密钥。只有机器使用它所以机器自动使用新的。