前言
git專案進行pull,push等操作時,都需要本地ssh-key許可權。但當多個倉庫或多個賬號進行開發時,則需要對多個key進行管理。 環境: windows10, Git Bash。
生成ssh-key
1、生成一個新的自定義名稱(demo)的公鑰:
$ ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/demo
複製程式碼
執行命令後,一路回車;
執行完成後,會在 ~/.ssh/目錄下生成一個 demo 和 demo.pub(主要內容在此檔案中) 檔案;
然後可同樣步驟再生成另一個公鑰(anohterDemo)。
2、新增相應的 demo.pub,anotherDemo.pub 到你的git專案上。
公鑰新增代理
1、檢視系統ssh-key代理,為公鑰新增代理,執行如下命令
$ ssh-add -l
複製程式碼
以上命令若輸出 "Could not open a connection to your authentication agent" 則還沒有建立代理。可以先執行以下命令建立代理
$ eval `ssh-agent -s`
複製程式碼
如輸出 "The agent has no identities" 則表示沒有代理。如果系統有代理,可以執行下面的命令清除代理:
$ ssh-add -D
複製程式碼
2、然後依次將不同的ssh新增代理,執行命令如下:
$ ssh-add ~/.ssh/demo
$ ssh-add ~/.ssh/anotherDemo
複製程式碼
配置公鑰對應伺服器
1、配置 ~/.ssh/config 檔案 如果沒有就在~/.ssh目錄建立config檔案,該檔案用於配置對應的伺服器。
#demo resrepositories
Host github-demo
HostName github.com
User git
IdentityFile C:/Users/使用者名稱/.ssh/demo
#anotherDemo resrepositories
Host github-anotherDemo
HostName github.com
User git
IdentityFile C:/Users/使用者名稱/.ssh/anotherDemo
複製程式碼
配置完成後,在連線github倉庫時,遠端庫的地址要對應地做一些修改,比如現在新增帳號下的demo倉庫,則需要這樣新增:
git remote add test git@github-demo:username/demo.git
#並非原來的git@github.com:username/demo.git
複製程式碼
2、測試 ssh
$ ssh -T git@github.com
複製程式碼
你會得到如下提示,表示這個ssh公鑰已經獲得了許可權
Hi @username/demo! You've successfully authenticated, but GitHub does not provide shell access.
複製程式碼
Ps: 同理可得多賬號操作方式