【发布时间】:2013-07-25 17:12:48
【问题描述】:
我一直在查看一些不同的 SO 帖子和其他论坛,以了解如何防止 git 在我与远程存储库交互时不断询问我的密码,但我所了解的是我需要创建 ssh键。
【问题讨论】:
我一直在查看一些不同的 SO 帖子和其他论坛,以了解如何防止 git 在我与远程存储库交互时不断询问我的密码,但我所了解的是我需要创建 ssh键。
【问题讨论】:
如果您想让您的私钥更安全,可以使用密码对其进行加密。您实际上可以使用ssh-agent 为终端/控制台会话存储一次密码,因此您不必一直输入它。
您需要使用 eval `ssh-agent -s` 启动代理,使用 ssh-add 输入您的私钥密码,然后在完成后使用 ssh-agent -k 终止代理。它甚至带有超时,ssh-add -t <timeout>,其中<timeout> 可以是 X 小时的 Xh,X 分钟的 Xm,等等。
ssh-agent 在 msysGit 和 Cygwin 上可用。我不确定它在 Unix/Linux/*nix 系统和 Apple OSX 等其他平台上的可用性。
您可以从this Stack Overflow answer 和this Stack Overflow answer 阅读更多关于ssh-agent 用法的信息,也可以在网上搜索相关说明。
【讨论】:
创建一个 SSH 密钥,但当它要求您输入密码时不要输入密码
https://help.github.com/articles/generating-ssh-keys
^ 在那篇文章的第二步中,当它要求输入密码时按回车
【讨论】:
.pub)?例如,我是否需要为我拥有的每个远程存储库提供一个唯一的 .pub(如果我有 bitbucket、github 和 heroku 存储库,则需要 3 个)?
ssh-agent 为终端/控制台会话存储一次密码,因此您不必一直输入它。您需要使用eval `ssh-agent -s` 启动代理,ssh-add 输入您的私钥密码,然后在完成后使用ssh-agent -k 终止代理。
ssh-agent 是否也有超时,还是仅基于终端会话和ssh-agent -k?但这真的很高兴知道,因为有密码要好得多,但这与每次都必须输入我的 HTTPS 密码相同(ssh-agent 之前)。