多個SSH key切換

來源:互聯網
上載者:User

github使用SSH與用戶端串連。如果是單使用者(first),產生金鑰組後,將公開金鑰儲存至github,每次串連時SSH用戶端發送本地私密金鑰(預設~/.ssh/id_rsa)到服務端驗證。單使用者情況下,已連線的服務器上儲存的公開金鑰和發送的私密金鑰自然是配對的。但是如果是多使用者(first,second),我們在串連到second的帳號時,second儲存的是自己的公開金鑰,但是SSH用戶端依然發送預設私密金鑰,即first的私密金鑰,那麼這個驗證自然無法通過。不過,要實現多帳號下的SSH key切換在用戶端做一些配置即可。

首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘second@mail.com’ 產生新的SSH key:id_rsa_second,產生完後將新的SSH public key添加到github。

ssh-keygen -t rsa -C 'second@mail.com'

預設SSH只會讀取id_rsa,所以為了讓SSH識別新的私密金鑰,需要將其添加到SSH agent

ssh-add ~/.ssh/id_rsa_second

該命令如果報錯:Could not open a connection to your authentication agent.無法串連到ssh agent,可執行ssh-agent bash命令後再執行ssh-add命令。

完成以上步驟後在~/.ssh目錄建立config檔案,該檔案用於配置私密金鑰對應的伺服器。內容如下:

# Default github user(first@mail.com)Host github.com HostName github.com User git IdentityFile C:/Users/username/.ssh/id_rsa# second user(second@mail.com)Host github-second HostName github.com User git IdentityFile C:/Users/username/.ssh/id_rsa_second

Host隨意即可,方便自己記憶,後續在添加remote是還需要用到。

配置完成後,在串連非預設帳號的github倉庫時,遠程庫的地址要對應地做一些修改,比如現在添加second帳號下的一個倉庫test,則需要這樣添加:

git remote add test git@github-second:second/test.git #並非原來的git@github.com:second/test.git

這樣每次串連都會使用id_rsa_second與伺服器進行串連。至此,大功告成!

注意:github根據設定檔的user.email來擷取github帳號顯示author資訊,所以對於多帳號使用者一定要記得將user.email改為相應的email(second@mail.com)。

參考github協助文檔:

  • http://help.github.com/win-set-up-git/
  • http://help.github.com/multiple-ssh-keys/

錯誤說明:
  • Bad file number:
這大多是因為開啟了防火牆造成的。可以關閉防火牆後再試,或者嘗試Http/Https的方式,一般防火牆都不會禁止這種方式。
  • Permission denied:
這個原因比較多,比如: 1. 找不到私密金鑰檔案 2. 私密金鑰產生有誤,比如產生時沒指定類型
  • Unable to use key file
  需要將伺服器端產生的私密金鑰的格式轉換一下putty才能認。運行PUTTYGEN.EXE,先把ssh-keygen產生的私密金鑰load進去,然後再save private key 就可以了來源: http://omiga.org/blog/archives/2269

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.