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

时间:2011-06-07 13:04:41

标签: linux git ssh github

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

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

其他详细信息: EC2实例运行基于Fedora的公共AMI。

6 个答案:

答案 0 :(得分:57)

请查看此链接https://help.github.com/articles/working-with-ssh-key-passphrases/

  

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

     

我也不是!值得庆幸的是,有一个漂亮的小工具叫做   ssh-agent可以安全地保存您的密码,这样您就没有了   重新输入它。如果您使用的是OSX Leopard或更高版本,则可以使用密钥   保存在系统的钥匙链中,让您的生活更轻松。最   linux安装将自动为您启动ssh-agent   你登录了。

答案 1 :(得分:22)

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

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

缓存一个月的密码:

git config --global credential.helper 'cache --timeout=2628000'

答案 2 :(得分:6)

您的情况现已解决,但对我而言,我~/.ssh/

中有多个密钥

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

IdentityFile ~/.ssh/my_key2_rsa

其中~/.ssh/my_key2_rsa是我的关键。

答案 3 :(得分:4)

尝试一下:

git config credential.helper store

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

答案 4 :(得分:3)

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

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

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

答案 5 :(得分:1)

我更新了我的 ~/.ssh/config 文件以阅读以下内容,不再需要输入我的 ssh 密码。

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519