无需密码GIT即可安全推拉

时间:2014-02-22 16:05:32

标签: git raspberry-pi git-shell

我正在使用我的覆盆子pi服务器,每当我克隆或在gitremotely上做任何事情时,我想在推拉上禁用密码。 我怎么做? 当我尝试将任何更改拉到或推送到服务器时,我不想在git shell上输入密码。

2 个答案:

答案 0 :(得分:4)

我不确定您的确切设置是什么,但我觉得您希望在服务器上设置SSH密钥。 Pro Git一书涵盖了如何在Chapter 4.4中彻底完成这项工作:

  

让我们一起来设置服务器端的SSH访问。在这   例如,您将使用authorized_keys方法来验证您的身份   用户。我们还假设您正在运行标准的Linux发行版   喜欢Ubuntu。首先,您创建一个'git'用户和一个.ssh目录   那个用户。

$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh
     

接下来,您需要添加一些开发人员SSH公钥   该用户的authorized_keys文件。我们假设您收到了一些   密钥通过电子邮件发送并保存到临时文件中。再次,公众   键看起来像这样:

$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
     

您只需将它们附加到authorized_keys文件:

$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys

答案 1 :(得分:3)

你需要生成你的SSH密钥(比如@ Ajedi32 exlains)或类似的解释在github页面上解释:https://help.github.com/articles/generating-ssh-keys

目前还在键入 git remote -v 您将看到您的存储库(可能是origin)将从https://github.com/user/repo.git开始。这意味着本地计算机上的git通过https引用远程git repo 。当通过https引用远程git repo 时,git将始终要求输入密码。

这就是为什么在按照上述方法之一设置SSH密钥之后,必须更改git从https协议引用远程仓库的方式ssh协议。

要做到这一点,首先要记下你当前的回购路径,例如。 https://github.com/username/reponame.git 然后你可以将它转换为ssh样式地址: ssh://git@github.com/username/reponame.git(请注意,您只需要更改usernamereponame部分。保留git@github.com原样。它必须一如既往。

然后在本地计算机上,您可以键入以下代码: 如果你在linux上

git remote -v
git remote rm origin
git remote add origin ssh://git@github.com/username/reponame.git
git remote -v 

最后一个命令将打印git引用远程存储库的路径,它将以ssh://...开头。

请注意,在使用命令git remote -v时,存储库路径将打印两次,一次用于fetch,一次用push注释。