多個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
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
出現上傳程式碼的資料流就上傳成功了。