如何在不重新输入SSH密码的情况下执行`git pull`?

jld*_*ont 87 linux git ssh github

是否可以进行配置,git/ssh因此每次我想执行时都不必输入密码git pull?请注意,repo是github上的私有.

或者,或者,从私有Github仓库自动执行代码部署的最佳做法是什么?

其他细节: EC2实例运行基于Fedora的公共AMI.

Fre*_*ihl 60

看看这个链接https://help.github.com/articles/working-with-ssh-key-passphrases/

但是每次我使用密钥时我都不想输入长密码!

我也不!值得庆幸的是,有一个漂亮的小工具 ssh-agent,可以安全地保存您的密码,因此您不必重新输入密码.如果您使用的是OSX Leopard或更高版本,您的密钥可以保存在系统的钥匙串中,让您的生活更轻松.大多数linux安装都会在您登录时自动为您启动ssh-agent.

  • 紧张?请放心:绝大多数人都很有礼貌......那些不是,好吧,他们比我更大的问题:) (3认同)
  • 有点紧张地回答有17.7k声誉的人; 我错误地解释了这个问题...... ;-) (2认同)
  • 该链接有助于说明运行哪些命令以将密码保存在“ ssh-agent”中:http://rabexc.org/posts/using-ssh-agent (2认同)

Sil*_*ria 24

我启用了密码缓存,如下所述:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

缓存一个月的密码:

git config --global credential.helper 'cache --timeout=2628000'
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用密码(**而不是带密钥文件的密码短语)作为远程Git仓库的基于SSH的URL,则根本无法保存密码.但是我注意到在发出任何git命令后,你可以立即输入密码然后按Enter键**.您无需等待密码提示出现. (2认同)
  • git 仍然询问通过 (2认同)

小智 8

你的情况现在已经解决,但对我而言,事实上我有一把钥匙 ~/.ssh/

要解决这个问题,我必须创建一个名为的文件~/.ssh/config并添加以下行:

IdentityFile ~/.ssh/my_key2_rsa
Run Code Online (Sandbox Code Playgroud)

~/.ssh/my_key2_rsa我的钥匙在哪里


inf*_*ged 7

我不知道为什么还没有人报告这个。但最简单的方法是AddKeysToAgent yes在 .ssh/config 文件的顶部添加一行。当然ssh-agent必须事先运行。如果它没有运行(通过ssh-agent终端上的命令检查),那么只需运行它eval $(ssh-agent)

我可以确认这是有效的,因为在我的项目中有很多子模块并且对于每个被克隆的子模块,我必须输入我的 ssh 密码。上面的技巧后,我不需要再这样做了。

解决方案的来源是https://askubuntu.com/questions/362280/enter-ssh-passphrase-once/853578#853578


Yan*_*kee 6

尝试这个:

git config credential.helper store

您必须输入一次密码,然后将其存储在root文件夹中。

正如评论所指出的那样,这不适用于SSH密码,仅适用于HTTPS密码。

  • 这不适用于SSH密码,仅适用于HTTPS密码。 (4认同)