1. 程式人生 > >多個github賬號的ssh-key配置

多個github賬號的ssh-key配置

我們都知道github使用ssh key進行許可權控制,沒有新增公鑰的github是不能推送版本的,所以我們新建一個github賬號都要對ssh key進行一次配置。才能讓他成為讓自己可以控制的遠端倉庫。 使用ssh key有幾個特點 1.一個key只能對應一個github賬號或者是一個倉庫。 2.不能使用同一個祕鑰對同時管理多個github賬號。如果需要管理多個github賬號就要生成多個key與之匹配。 因為公司使用github進行開發的,但是我想讓自己的github和公司的github分開使用。並且使用同一個電腦控制,很顯然使用同一個公鑰是不可行的,所以就把這一套操作記錄下來。 首先,電腦已經有一個祕鑰對了,是公司的github,這個就不要輕易改動了。只需要新增一個祕鑰對就可以了。 操作步驟 生成一個祕鑰對

ssh-keygen -t rsa -C "你的github郵箱名" 

然後會提示三次:1.輸出祕鑰的路徑 2.密碼 3.確認密碼 這三個選項都是可以直接enter的,如果都選擇預設的,就會在~/.ssh/目錄下建立id_rsa 和 id_rsa.pub 很明顯id_rsa是私鑰,id_ras.pub是公鑰,私鑰當然是不能放在其他地方,只能放在本地,而我們需要的是把id_rsa.pub新增在github的key列表中。 新增私鑰到系統並配置ssh 但是隻是生成當然是遠遠不行的,你要把私鑰新增進系統中並且配置ssh config

ssh-add <私鑰路徑> //將私鑰新增進系統中
vi ~/.ssh/config //沒有這個檔案的話可以建立一個

這裡配置幾個選項可以理解為以後使用起來更加的方便,並不是只有github才需要配置這個檔案,而是使用ssh遠端登入的主機 都可以通過配置這個檔案進簡化操作,例如跳板機,堡壘機等。

Host mygithub.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git

這幾個選項的用處是 Host 為了代替下面的主機的名字。可以理解成localhost和127.0.0.1是一樣的。 HostName是真實的域名github.com,可以通過Host代替它 IdentityFile是用來驗證身份的,這裡放置一個私鑰相當於登入密碼 User是指登入使用者github的使用者為git 新增公鑰到Github

步驟:登入自己的github賬號,點選右上角頭像。選擇settings。點選SSH and GPG keys,點選new ssh key 輸入一個key名,然後在下面的文字框中貼上進公鑰,點選確定就可以了。 (這裡需要多說一下,關於複製公鑰的方式最好是使用cat ~/.ssh/id_rsa,輸出在終端上覆制貼上,使用vi複製很可能會出錯) 測試

ssh -T <Host> #Host是自己配置的名字

如果出現Hi yourname! You’ve successfully authenticated, but GitHub does not provide shell access.說明配置成功了。 github使用 這時候我們就可以往github上上傳程式碼了,但是不能直接給github賬戶上傳程式碼,應該是給倉庫上傳程式碼。在github網頁上建立一個倉庫名字最好和要上傳的專案一致,完成後點選code就會看到操作提示。

cd <your object>
git init #初始化倉庫,可以讓你的當前資料夾成為一個git倉庫
git remote add origin [email protected]<Host>:xxxx/test.git	#新增一個遠端倉庫地址,Host要寫剛才ssh config中的。
git push origin master

出現上傳程式碼的資料流就上傳成功了。