git在推/拉之前输入密码

时间:2011-07-19 01:29:03

标签: git

我们公司正在使用git进行源代码控制,在我的机器上我可以在不输入密码的情况下推送到服务器,但是我的一位同事不得不重复输入一个非常烦人的密码,有谁知道怎么做解决这个问题?

提前致谢

编辑: 我们没有使用github,我们已经拥有git用户主目录中.ssh文件夹中authorized_keys文件中所有用户的ssh公钥。我没有为我的电脑做任何特别的事情,只是像其他电脑一样添加了ssh键,但我是唯一一个不必重复输入密码的人

4 个答案:

答案 0 :(得分:3)

这可能是通过在生成id_rsa密钥对时设置密码来完成的。 github上有一些关于如何使用密码进行设置的文档。如果您想在没有密码的情况下启动密钥对,请执行以下命令。

cd ~/.ssh
ssh-keygen -t rsa -C "youremail@example.com"

在生成密钥时提示输入密码时,请将其留空并按Enter键。

答案 1 :(得分:3)

这取决于它是否要求输入密码或密码。我猜它是后者。在这种情况下,它意味着用于身份验证的密钥对是使用密码创建的。如果该密钥对不用于其他任何东西,那么只需生成另一个密钥对并使用

覆盖它是安全的
ssh-keygen

然后按三次Enter键。如果您不想覆盖现有的那个,请告诉我,我会告诉您有关的选项。

然后,无论是最初要求密码还是密码,您都需要将位于〜/ .ssh / id_rsa.pub的新密钥对的公共一半添加到您尝试的git服务器中推动。如果它是一个gitosis或gitolite服务器,它可能是,你必须将公钥提供给拥有管理员权限的人,以便他们可以将它添加到服务器。如果它只是一个普通的Linux盒子,上面有正常的git repo(可能没有),你可以使用

ssh-copy-id user@host

这次会询问您的密码,但之后不再要求。

这应该涵盖最可能的情景。如果它似乎没有,给我更多的细节,我应该能够帮助你。

答案 2 :(得分:2)

另一种选择是将密码保留在密钥上,但使用ssh-agent存储会话期间的密码。

答案 3 :(得分:0)

您需要将他的公钥添加到authorized_keys文件中,该文件位于该git用户的〜/ .ssh / authorized_keys文件中。

  1. 确保他创建了一个ssh-key文件
  2. scp git_user@servername:~ id_rsa.pub
  3. 以git用户身份进入服务器:ssh git_user @ servername并输入密码。
  4. cat id_rsa.pub >> authorized_keys
  5. 这会将他的密钥添加到授权密钥中,他不必输入密码。