Windows下Git多帳號配置,同一電腦多個ssh-key的管理

Windows下Git多帳號配置,同一電腦多個ssh-key的管理

  這一篇文章是對上一篇文章《Git-TortoiseGit完整配置流程》的拓展,因此須要對上一篇文章有所瞭解,固然直接往下看也能夠,其中也有一些提到一些基礎的操做。html

  本文以配置github.com帳號和git.oschina.net帳號來逐步演示在Windows環境下配置Git多帳號支持即在同一個電腦上管理多個ssh-key,對git多一分了解。git

  備註:這篇文章全部執行命令的地方都是在管理員模式下進行,即打開cmd,Git Bash客戶端用管理員身份運行程序。github

1. 生成github.com對應的私鑰公鑰(本文中文件地址C:\Users\popfisher目錄)

執行命令 ssh-keygen -t rsa -C email 建立github對應的sshkey,命名爲id_rsa_github,密碼 123456 服務器

ssh-keygen -t rsa -C 774232122@qq.com

 

2. 一樣的方式生產git.oschina.net的私鑰公鑰(郵箱地址能夠相同能夠不一樣,本文相同)

執行命令ssh-keygen -t rsa -C email建立github對應的sshkey,命名爲id_rsa_oschina,密碼 123456 ssh

ssh-keygen -t rsa -C 774232122@qq.com

 

3. 把上面獲得的文件拷貝到git默認訪問的.ssh目錄(win10在用戶目錄下,本文C:\Users\popfisher.ssh)

除了祕鑰文件以外,config文件是後面的步驟中手動生產的,known_hosts文件是後續自動生產的學習

 

4. 把github對應的公鑰和oschina對應的公鑰上傳到服務器

 GitHub添加SSH key的方式以下圖所示:

 

git.oschina.net添加SSH key的方式以下圖所示:

 

5. 在.ssh目錄建立config文本文件並完成相關配置(最核心的地方)

每一個帳號單獨配置一個Host,每一個Host要取一個別名,每一個Host主要配置HostNameIdentityFile兩個屬性便可測試

Host的名字能夠取爲本身喜歡的名字,不過這個會影響git相關命令,例如:
Host mygithub 這樣定義的話,命令以下,即git@後面緊跟的名字改成mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.gitspa

 

HostName           這個是真實的域名地址
IdentityFile          這裏是id_rsa的地址
PreferredAuthentications   配置登陸時用什麼權限認證--可設爲publickey,password publickey,keyboard-interactive等
User            配置使用用戶名.net

 

config文件配置以下:

複製代碼

# 配置github.com
Host github.com                 
    HostName github.com
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github
    PreferredAuthentications publickey
    User username1

# 配置git.oschina.net 
Host git.oschina.net 
    HostName git.oschina.net
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina
    PreferredAuthentications publickey
    User username2

複製代碼

 

 6. 打開Git Bash客戶端(管理員身份運行)執行測試命令測試是否配置成功(會自動在.ssh目錄生成known_hosts文件把私鑰配置進去)

 

 

7. 測試成功以後就能夠在電腦上同時使用git多多帳號同時操做,互不影響了

clone github上的項目AndroidRotateAnim

  打開github上AndroidRotateAnim項目,複製其對應的clone命令入下圖所示code

 執行clone命令以下:

 

 

clone oschina.net上的項目AndroidDevTools

  打開git.oschina.net上AndroidDevTools項目,複製其對應的clone命令入下圖所示

 

 執行clone命令以下:

 

學習心得

  在使用git的過程當中,通常都只關注單帳號的狀況嗎,工做中的配置也是直接由本身的上級發一個配置文檔之類的東西,而後對着搞一遍就好了,但是當本身真正有這個需求的時候,忽然發現一籌莫展。我本身當時也屬於這個狀況,有一天在家裏,忽然發現本身須要一臺電腦支持多個SSH key的時候才發現本身不知道怎麼下手了,因而就下定決心本身動手研究一下。對於技術,仍是要親自動手實踐,實踐出來的東西才能造成本身的真理,纔不那麼容易忘記。 

  這篇文章是我基於Win10平臺上的實踐,因爲知識有限,可能仍是沒有總結得很完整,也可能在其餘平臺上會遇到一些其餘的問題,沒有時間去研究了,若是讀者有遇到什麼問題,歡迎留言討論,共同窗習。

相關文章
相關標籤/搜索