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

Jas*_*son 2 git

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

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

machine companyserver.com
login jason
password aphanumeric_gibberish
Run Code Online (Sandbox Code Playgroud)

git clone命令由

git clone jason@git.companyserver.com:/opt/git/jason.git 
Run Code Online (Sandbox Code Playgroud)

甚至在删除我的本地工作副本并重新克隆git repo之后

/media/storage/code_projects/company_working_copy
Run Code Online (Sandbox Code Playgroud)

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

基于这些条件,我如何实现无密码的推/拉使用.netrc

小智 5

您使用克隆公司回购的网址:

jason@git.companyserver.com:/opt/git/jason.git
Run Code Online (Sandbox Code Playgroud)

看起来像Git的SSH URL,正如urls官方Linux Kernel Git文档中clone所指定的:

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

[user@]host.xz:path/to/repo.git/
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

  1. user@jason@.
  2. host.xzgit.companyserver.com.
  3. /path/to/repo.git//opt/git/jason.git.

您需要设置一个SSH密钥以使用"无密码"推送和拉动您的远程Git仓库.您可以在GitHub帮助页面上找到有关生成SSH密钥的说明.

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

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

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

在同一篇帮助文章中,他们还解释了如何使用*nix实用程序ssh-agent在终端会话期间自动存储密码,这样您每次使用私钥发出SSH请求时都不必继续输入密码.