git 使用ssh公钥

来源:互联网 发布:标准韩国语第二册淘宝 编辑:程序博客网 时间:2024/05/17 09:09
在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响commit的记录。 

1.ssh-keygen -C "你的email地址" -t rsa 

后面直接回车直到结束,中间可以不需要任何设置,该命令将生成一对非对称的公/私密钥,默认它们被存储在: 

XP/2003用户:c:/Documents and Settings/登陆名/.ssh 

Vista用户: c:/Users/登陆名/.ssh 

该.ssh文件夹下面,密钥放在id_rsa文件里面,不用理会它; 
2、在linux服务器上将公钥加到git用户的authorized_keys文件中。 
  可以参考:http://github.com/git-on-windows/rookies 
 git用户的建立及设置参考:http://progit.org/book/zh/ch4-4.html 

注意,git上的仓库对git用户要有写权限,同时需要将/etc/ssh/sshd_config中将RSA认证打开,即: 
  1. 1.RSAAuthentication yes     
  2. 2.PubkeyAuthentication yes     
  3. 3.AuthorizedKeysFile  .ssh/authorized_keys

另外,我在ubuntu上连接用git用户连接时,报Agent admitted failure to sign using the key 错误,查了一下需要启动ssh-agent,然后添加id_rsa到ssh-agent中,再连接就可以了。

很多人可能会同时使用多个私钥,由于私钥默认为id_rsa,所以如果使用多个公钥的话,需要在~/.ssh 目录下创建一个config文件,其内容后面会给出demo.

本地配置,可以同时拥有多个私钥,如果有多个私钥,就设置多个Host:

1
vim ~/.ssh/config

config文件内容

1
2
3
Host gitserver.com
Compressionyes
IdentityFile ~/.ssh/privateke
0 0