让你的Git使用上ssh协议授权
2015-03-27
- ssh原理
- 基本的ssh配置
- 多账号ssh配置
- 同一平台下的多账号配置
ssh原理
基本的ssh配置
简要总结一下
- 打开ssh目录,一般是隐藏的
cd ~/.ssh
生成密钥文件,这样就会生成默认名字为
id_rsa
和id_rsa.pub
1
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
(说明:`YOUR_EMAIL@YOUREMAIL.COM`换成你自己的邮箱)
打开公钥文件(id_rsa.pub),并把内容复制至代码托管平台上
1
vim ~/.ssh/id_rsa.pub
进入 GitCafe –>账户设置–>SSH 公钥管理设置项,点击添加新公钥 按钮,在 Title 文本框中输入任意字符,在 Key 文本框粘贴刚才复制的公钥字符串,按保存按钮完成操作。
测试
1
ssh -T git@gitcafe.com
成功应该提示
1
Hi xxxxxx! You've successfully authenticated, but GitCafe does not provide shell access.
这样就可以只用ssh协议的URL了,一般默认是https协议的,如图点击SSH即可切换:
这样push代码时就不用再输密码了。
多账号ssh配置
当你在Github或Gitcafe或Coding都有账号时
假设已经有一个Gitcafe的密钥了,需要需要添加Github的
生成指定名字的密钥
1
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/github
命名为github(这里叫什么随意,不要重名即可),然后会生成
github
和github.pub
这两个文件- 打开公钥文件(id_rsa.pub),并把内容复制至代码托管平台上
修改
config
文件1
vim ~/.ssh/config
添加如下代码
1
2Host github.com www.github.com
IdentityFile ~/.ssh/github测试
1
ssh -T git@github.com
如果是coding的
1
2Host coding.net www.coding.net
IdentityFile ~/.ssh/coding
同一平台下的多账号配置
如果有两个Github账号:
- 也是按照 多账号设置 的方法进行第一第二步
这样你就已经正确的生成好了两个密钥,假设是:github_a
和github_b
分别对应的是你的账户aaaaaa和账户bbbbbb 修改
config
文件1
vim ~/.ssh/config
添加如下代码
1
2
3
4
5
6
7
8Host aaaaaa.github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_a
Host bbbbbb.github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_b修改ssh URL
例如原来的url是:`git@github.com:aaaaaa/xxxxxx.git需要改成:
git@aaaaaa.github.com:aaaaaa/xxxxxx.git`
bbbbbb账号的修改也是如此
最后补充一点(这部分Git熟悉的基本可以略过):有些童鞋可能在设置这个多账号前已经配置了一个Github的ssh,然后把代码clone下来,配置多账号后,原来的代码就提交不上了。
此时你进入 原来clone的代码文件夹下,执行 git remote -v
,即可看到远处资源库路径
如:`git@github.com:aaaaaa/xxxxxx.git`
执行git remote remove origin
删除该远程路径
执行git remote add origin git@aaaaaa.github.com:aaaaaa/xxxxxx.git
加上正确的远程仓库。