一個人自己用
- 在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