git ssh配置
一个人自己用
- 在GitHub/GitLab添加ssh公钥
- 将私钥放在本地
~/.ssh
下面,名字无所谓。 - push你的仓库,git push xxxx
如果正好一切都很巧合的话,就能push成功。
,他就会自动找一个私钥使用。
这适用于只有一个github用户,自己对付用一下的情况。github依靠不同的私钥来区分登录的用户,所有的用户用的都是同一个网址。
如果你想知道默认会使用哪个私钥,你就ssh -T git@github.com
可以看一下返回的欢迎信息说的是谁。
多个用户
gitlab根据私钥区分不同的用户,上面你在push的时候git实际上是随便找了个私钥试了试,只不过.ssh
目录下只有一个私钥,正好可以。
如果你有多个私钥,可就不一定这么巧合能正好使用你的私钥了。那怎么办呢?我们可以测试一下:
$ ssh -i /home/ubuntu/.ssh/id_rsa.alice -T git@github.com
Hi alice! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -i /home/ubuntu/.ssh/id_rsa.bob -T git@github.com
Hi bob! You've successfully authenticated, but GitHub does not provide shell access.
ssh这里可以使用不同的私钥来登录不同的用户。那么我们写到.ssh/config
中两个Host即可
Host gitolite-as-alice
HostName git.company.com
User git
IdentityFile /home/whoever/.ssh/id_rsa.alice
IdentitiesOnly yes
Host gitolite-as-bob
HostName git.company.com
User git
IdentityFile /home/whoever/.ssh/id_dsa.bob
IdentitiesOnly yes
然后用这两个Host作为git仓库的remote url即可。
git remote add alice git@gitolite-as-alice:whatever.git
git remote add bob git@gitolite-as-bob:whatever.git