2012-11-16 62 views
3

我的服务器上有Debian,Fisheye和Git。 我的git回购由Fisheye管理。在鱼眼部分没有认证。所有的认证程序都由git管理。Git SSH身份验证

我想使用SSH身份验证,以便在将更改推送到服务器时不需要提供用户名和密码。我知道如何创建一个rsa密钥,但我在哪里可以在服务器上复制我的公钥?

回答

6

文章的关键部分“Git on the Server - Setting Up the Server”是:

你需要开发者的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 

如果你没有一个authorized_keys做文件在您的服务器上,创建它,但一定要正确保护它。

server$ mkdir ~/.ssh 
server$ chmod 700 ~/.ssh 
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 
server$ chmod 600 ~/.ssh/authorized_keys 
server$ rm ~/id_rsa.pub 

有关具体示例,请参阅“Creating SSH keys for Gerrit and Hudson”。

  • 确保git位于您的ssh守护程序使用的PATH中。
  • 确保您的~/.ssh的所有父目录都不可写入群组(仅适用于chmod 755)。
1

你需要将你的公钥粘贴到〜/ .ssh/authorized_keys中。如果该文件不存在,请创建该文件。