多git帳號的SSH key切換

2021-08-27 22:31:57 字數 2841 閱讀 8291

1.同一臺電腦可以有2個git賬號(不同**的)

首先不同**,當然可以使用同乙個郵箱,比如我的 github,gitlab,bitbucket的賬號都是gotodiscuss[at]gmail.com 這時候不用擔心金鑰的問題,因為這些**push pull 認證的唯一性的是郵箱 比如我的windows 上 2個賬號乙個gitlab 乙個github (用的都是id_rsa)

host github

hostname github.com

port 22

host gitlab.ikeepstudying.com

hostname gitlab.ikeepstudying.com

port 65095

不需要指定key的位置。因為預設讀取id_rsa了

這樣子使用起來沒有任何區別,remote 也想平時一樣操作即可。因為郵箱是相同的。

2.同一臺電腦有2個github賬號?咋辦

比如我伺服器上模擬的2個使用者

#[email protected]   我在gitlab的第乙個賬號gotodiscuss

host gitlab.gotodiscuss.com

hostname gitlab.gotodiscuss.com

port 65095

user gotodiscuss

identityfile /home/suzie/.ssh/id_rsa

# 我在gitlab的第2個賬號test

host gitlab-test.gotodiscuss.com

hostname gitlab.gotodiscuss.com

port 65095

user test

identityfile /home/suzie/.ssh/id_rsa_second

#[email protected] 我在github的賬號

host github-osteach.com

hostname github.com

port 22

user osteach

identityfile /home/suzie/.ssh/id_rsa_second

所以,config基本寫法:

host myhost(這裡是自定義的host簡稱,以後連線遠端伺服器就可以用命令ssh myhost)[注意下面有縮排]

user 登入使用者名稱(如:git)

hostname 主機名可用ip也可以是網域名稱(如:github.com或者bitbucket.org)

port 伺服器open-ssh埠(預設:22,預設時一般不寫此行)

identityfile 證書檔案路徑(如~/.ssh/id_rsa_*)

這種情況下,需要幾點注意

1.remote pull push的時候有問題,因為要設定郵箱問題了 pull的時候識別的是郵箱,2個github賬號,2個郵箱,我們自然不能使用global的user.email了

git config -e [--global] # 編輯git配置檔案

git config --global user.name yanhaijing

git config --global user.email [email protected]

git config --list #檢視配置的資訊

git help config #獲取幫助資訊

#1.取消global

git config --global --unset user.name

git config --global --unset user.email

#2.設定每個專案repo的自己的user.email

git config user.email "***[email protected]"

git config user.name "suzie"

之後push pull就木有問題了

備註生成ssh key

ssh-keygen -t rsa -c "your mail" (當前目錄) 然後可以命名預設id_rsa 或者id_rsa_second 把對應的pub放到公共伺服器上。

ssh-keygen 命令要在專案目錄裡面執行,並且要取消全域性 user.name 和 user.email,建立區域性user.name 和 user.email (跟你的git賬戶一致),這個害的我浪費了很多時間。

ps.

sourcetree 如果使用多賬號時,記得修改config檔案,同時在"tools"選單的"add ssh key"中選擇私鑰,最重要的是clone時要使用修改後的path.

1.//git clone 專案時提示host key verification failed

使用 ssh 協議時會驗證對方伺服器的 key。ssh無法確認伺服器出示的 key 是可信認的,所以問你這個 key 是不是真的是你要連線的那個伺服器的。你沒說「yes」所以 ssh 認為你不想繼續連線,結果當然是連線失敗

2.//git clone permissions 0644 for 『~/.ssh/id_rsa』 are too open

只要把許可權降到0600就可以了

3.//bad owner or permissions on /home/***/.ssh/config

ssh config檔案許可權的問題,把許可權降到0600就可以了.

其他:在github多個帳號上新增ssh公鑰

**:多git帳號的ssh key切換

多個github帳號的SSH key切換

1.首先cd到 ssh 使用 ssh keygen t rsa c second mail.com 生成新的ssh key id rsa second ssh keygen t rsa c second mail.com 2.預設ssh只會讀取id rsa,所以為了讓ssh識別新的私鑰,需要將其新增...

多個github帳號的SSH key切換

github使用ssh與客戶端連線。如果是單使用者 first 生成金鑰對後,將公鑰儲存至github,每次連線時ssh客戶端傳送本地私鑰 預設 ssh id rsa 到服務端驗證。單使用者情況下,連線的伺服器上儲存的公鑰和傳送的私鑰自然是配對的。但是如果是多使用者 first,second 我們在...

git 配置多對ssh key

1.生成兩個不同的ssh ssh keygen t rsa c yourmail gmail.com 生成金鑰步驟 執行兩次,設定不同的名字或路徑。2.配置 將公鑰 pub加入 託管平台的配置中,如github 當前使用者目錄中建立config檔案 該檔案用於配置私鑰對應的伺服器 default g...