GIT:如何管理本機的多個ssh密鑰(多個遠程倉庫帳號)

      最近在學習git,首先推薦一個我的認爲很不錯的git教程,學習後,從git新手變成了git入門了,仍需繼續努力。 linux

      廖老師的git學習教程(其餘git基礎知識點,本篇博客就不作介紹了,本身看教程學習吧,老師講解很不錯,通俗易懂):nginx

      http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  git

      這裏是將本身遇到的一個問題,經過查閱資料,大部份內容轉載網址: https://segmentfault.com/a/1190000005607713 ,很是感謝這位大神,在此也分享給其餘愛好git的朋友。咱們可能會須要在一臺電腦上以不一樣的github帳戶去使用git,這時就須要去解決如何管理本機上的多個ssh key的問題了(情景:好比你有一個github網站遠程倉庫的帳號,同時又有一個公司遠程倉庫的帳號,爲了便於不一樣倉庫代碼的pull和push,就須要配置多個ssh密鑰了)。github

 

生成新ssh key

      若是咱們電腦上已經存在了一個ssh key,那麼咱們須要在咱們電腦上生成第二個你想在本電腦上使用的id_rsa,使用命令:ssh-keygen -t rsa -C "你的github帳號"。 vim

紅色標註部分會提示你把新生成的id_rsa存放到哪裏,此處默認會存放在c盤的用戶名下的.ssh文件夾下(即你第一個github用戶ssh key存放的目錄),所以咱們須要輸入路徑/c/Users/DodoMonster/.ssh(注意此路徑是你的系統盤下用戶目錄安放ssh密鑰的目錄,請使用本身電腦上相對應的目錄),最後我以「id_rsa_gman」從新命名了ssh key防止默認與已有的ssh key重複。segmentfault

     

    在輸入了路徑後,會提示你輸入提交項目時輸入的驗證密碼,不輸則表示不用密碼,這是爲了防止別人隨便在你的項目上push東西,因此最好仍是輸入如下你的密碼。回車,再重複輸入確認回車便可(一路回車也能夠,此時沒有密碼)。ruby

 

添加新ssh key

      默認SSH只會讀取id_rsa,因此爲了讓SSH識別新的私鑰,須要將其添加到SSH agent
使用命令:ssh-add ~/.ssh/id_rsa_gmanbash

     

    若是報錯:Could not open a connection to your authentication agent.沒法鏈接到ssh agent;可執行ssh-agent bash命令後再執行ssh-add命令服務器

 

配置config文件

      查看.ssh文件中是否存在config文件dom

      若是已存在則直接編輯config文件,命令:vim config          #這是linux的命令,進入了vim界面後按a或i或A或I進入編輯模式,編輯完成後按esc鍵輸入:wq 保存文件退出

      若是不存在則須要建立config文件,命令:touch config,再對config文件進行編輯

      

   對config文件進行配置填寫:

 #Default github user(DodoMonster@email.com)-這實際上是註釋  Host github #把默認的經常使用的github Host設爲github.com較好 HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_me

其中Host 後的名字能夠隨意方便本身記憶,但HostName必須爲github.com。

# ************************************************
#second user(monster@qq.com) Host monster HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa ps:HostName 是域名

測試是否配置成功

  使用命令:

 ssh -T git@github.com ssh -T git@github 

出現如圖的歡迎語則爲配置成功。

注意:配置完成後,在鏈接Host不是github.com的github倉庫時,遠程庫的地址要對應地作一些修改,好比如今添加monster賬號下的一個倉庫orderTicket,則須要使用以下命令這樣添加:

git remote add test git@github:monster/orderTicket.git

     而並不是原來的git@github.com:monster/orderTicket.git(這樣每次鏈接都會使用id_rsa與服務器進行鏈接)。

配置至此,大功告成!

 

    另外注意:github根據配置文件的user.email來獲取github賬號顯示author信息,因此對於多賬號用戶必定要記得將user.email改成相應的email(monster@mail.com)。

相關文章
相關標籤/搜索