配置git以允许cli push / pull而不输入密码 - netrc被忽略了吗?

时间:2013-07-20 14:53:34

标签: git

我刚刚开始了一份合同工作,并在公司的git存储库中拥有一个帐户。问题是,给出的密码是字母数字乱码,所以我想配置git以允许在我的Ubuntu开发盒上减少密码的推/拉。

为此,我在.netrc创建了$HOME个拥有0600权限的文件并添加了

machine companyserver.com
login jason
password aphanumeric_gibberish

git clone命令由

组成
git clone jason@git.companyserver.com:/opt/git/jason.git 

即使删除了我的本地工作副本并将git repo重新克隆到

/media/storage/code_projects/company_working_copy

我仍然会收到提示输入密码。

根据这些条件,如何使用.netrc实现无密码的推/拉?

1 个答案:

答案 0 :(得分:5)

你正在使用克隆公司仓库的网址:

jason@git.companyserver.com:/opt/git/jason.git

看起来像Git的SSH网址,正如official Linux Kernel Git documentation for clone urls

中指定的那样
  

另一种类似scp的语法也可以与ssh协议一起使用:

[user@]host.xz:path/to/repo.git/

在你的情况下:

  1. user@jason@
  2. host.xzgit.companyserver.com
  3. /path/to/repo.git//opt/git/jason.git
  4. 您需要设置一个SSH密钥才能使用“无密码”推送和拉动您的远程Git仓库。您可以在GitHub help page on generating SSH keys找到此类说明。

    但是,请注意,建议您仍然使用密码加密私有SSH密钥,因为如果有人设法从您的计算机窃取私钥文件,那么就像窃取您的密码一样,他们将能够如GitHub on why SSH passphrases are necessary所解释的那样,模拟您使用该私钥的任何SSH服务:

      

    密码不是很安全,你已经知道了。如果你使用一个容易记住的,它更容易猜测或暴力。如果你使用的是随机的,那么很难记住,因此你更倾向于写下密码。这些都是非常糟糕的事情。这就是你使用ssh密钥的原因。

         

    但是使用没有密码短语的密钥与在计算机上的文件中记下该随机密码基本相同。任何能够访问您的驱动器的人都可以访问您使用该密钥的每个系统。这也是一件非常糟糕的事情。解决方案很明显,添加密码。

    在同一篇帮助文章中,他们还解释了how to use the *nix utility ssh-agent to automatically store your passphrase during a terminal session,这样您每次使用私钥发出SSH请求时都不必继续输入。

相关问题