2

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

4

2 回答 2

5

我不确定你的确切设置是什么,但在我看来你想在你的服务器上设置一个 SSH 密钥。Pro Git书在第4.4 章中详细介绍了如何做到这一点:

让我们在服务器端设置 SSH 访问。在此示例中,您将使用 authorized_keys 方法来验证您的用户。我们还假设您正在运行像 Ubuntu 这样的标准 Linux 发行版。首先,为该用户创建一个“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
于 2014-02-22T19:07:17.180 回答
3

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

目前,如果您键入 git remote -v ,您将看到您的存储库(origin可能)将具有以 ) 开头的路径https://github.com/user/repo.git。这意味着本地机器上的 git 指的是远程 git repo via https。当通过 引用远程 git repohttps,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注释。

于 2014-02-24T15:43:35.770 回答