git 指定自己的sshkey


在服務器上生成ssh-key以后,需要把公鑰放在github上,但是,這個公鑰只能放在一個賬戶里,如果放在第二個賬戶里,就會提示這個key已經被用了,這是前提

 

一個可能的場景是這樣的:

  你們公司有好幾個項目都托管在git上,然后有一台公用的服務器,這時候,你的同事在服務器上搞了一套ssh-key,添加到他的項目里用於ssh驗證拉代碼了,這時候你也用到這台服務器,然后把公鑰往自己的項目里加的時候,發現加不進去了,這時候最暴力的解決方法就是,你重新生成一套加在自己的倉庫里,但是這么搞的化,你同事之前添加的那個肯定是不能用了,然后他發現自己的不能用了,上了服務器一看key被改了,他又重新生成一下,然后你又不能用了,如此反復,相愛相殺。

 

明智的解決方法是這樣的,讓git去服務器拉代碼的時候使用不同的ssh-key就可以了,具體做法如下:

1.生成你自己的ssh-key

ssh-keygen -t rsa -P '' -f ./id_rsa_myself

這個命令會在當前目錄生成  id_rsa_myself 和id_rsa_myself.pub 的一對,特別注意的是一定要指定生成文件的存放路徑,要么去默認的地方了(~/.ssh/),那就把你同事的給覆蓋了

 

2.這時候就可以添加公鑰了,把 id_rsa_myself.pub里的東西添加到github上,這些基本操作就不說具體步驟了

 

3.把 id_rsa_myself 這個私鑰存起來,放哪里都無所謂,也可以直接放在 ~/.ssh/ 目錄里,我習慣放在自己家目錄下,比如  /home/xiaol/ssh/id_rsa_myself

 

4.在~/.ssh/目錄常見一個config文件,內容如下

cd     ~/.ssh/
vi config

Host myself
    HostName bitbucket.org
    User git
    PreferredAuthentications publickey
    IdentityFile /home/xiaol/ssh/id_rsa_myself

 

5. 這個config和剛才存起來的id_rsa_myself需要權限為600(~/.ssh/系統生成的就是600,改就好了,不改報權限問題)

chmod 600 ~/.ssh/config
chmod 600 /home/xiaol/ssh/id_rsa_myself

 

配置過程就完成了

 

下面說下使用

配置之前你clone代碼:

git clone git@bitbucket.org:xxx/xxx.git

配置之后你clone代碼:

git clone git@myself:xxx/xxx.git

 至於為什么,你對着新建的那個config文件琢磨琢磨就知道了

 

這種解決方法不影響你同事,config中沒配的時候會用 ~/.ssh/下的文件驗證

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM