git ssh配置

一个人自己用

  1. 在GitHub/GitLab添加ssh公钥
  2. 将私钥放在本地~/.ssh下面,名字无所谓。
  3. 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
posted @ 2024-03-12 15:41  王冰冰  阅读(49)  评论(0编辑  收藏  举报