多個(gè)git托管平臺(tái)同時(shí)使用時(shí)SSH Key的生成及添加

使用一個(gè)郵箱注冊(cè)多個(gè)git代碼托管平臺(tái),如:GitHub添诉、Gitlab梢褐、碼云等旺遮。在用戶端赵讯,生成對(duì)應(yīng)平臺(tái)的的 SSH Key 時(shí),會(huì)生成對(duì)應(yīng)的 id_rsaid_rsa.pub 公鑰文件(默認(rèn)的密鑰文件名取決于算法耿眉,此處默認(rèn)使用RSA算法加密)边翼,然后在對(duì)應(yīng)的平臺(tái)上添加用戶生成的 SSH Key 即可,下文將在此基礎(chǔ)延伸多個(gè)git托管平臺(tái)使用時(shí)鸣剪,對(duì)應(yīng)的多個(gè)秘鑰生成及添加组底。

單個(gè)平臺(tái)SSH key生成及添加

Windows下需要在 git bash 命令行窗口(也可使用 cmder ),按照下面命令西傀,來生成對(duì)應(yīng)托管平臺(tái)的 SSH Key 斤寇。


ssh-keygen -t rsa -C "對(duì)應(yīng)平臺(tái)注冊(cè)的郵箱地址" 

命令行輸出類似如下消息

$ ssh-keygen -t rsa -C "maple_6392@163.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in gitee_id_rsa.
Your public key has been saved in gitee_id_rsa.pub.
The key fingerprint is:
SHA256:t86b0RbwMYAVdqGwUQXkuS3ZnL1u4UJBgfjrK7TJkKY maple_6392@163.com
The key's randomart image is:
+---[RSA 2048]----+
|        o*O==o   |
|        o*.=.    |
|        ..=.o    |
|          .O.=   |
|       .S =.B..  |
|      + ...+.... |
|     o + +o.o... |
|    E   =o.+..o  |
|         .*o o.  |
+----[SHA256]-----+

此時(shí)在 ~/.ssh 目錄下會(huì)生成 id_rsaid_rsa.pub 文件

.ssh 目錄在對(duì)應(yīng)用戶的根目錄下桶癣,即 : C:\Users\當(dāng)前用戶名\.ssh

<span id="add_key"></span>

然后將 id_rsa.pub 文件的內(nèi)的 SSH Key 添加到對(duì)應(yīng)的平臺(tái)(此處以GitHub為例)

github_setting
github_setting
github_ssh_keys
github_ssh_keys
github_ssh_key_add
github_ssh_key_add

設(shè)置內(nèi)后拥褂,通過命令進(jìn)行驗(yàn)證


ssh -T git@github.com

注意, 此處git@后添加對(duì)應(yīng)平臺(tái)的主域名牙寞,如Github的github.com饺鹃,碼云的gitee.com

如果上面命令添加執(zhí)行后间雀,命令行輸出類似內(nèi)容


Hi yourname(此處為對(duì)應(yīng)git平臺(tái)的用戶名)! You've successfully authenticated... 


Welcome to xxx.com, yourname(此處為對(duì)應(yīng)git平臺(tái)的用戶名)!...

則表示對(duì)應(yīng)平臺(tái)的SSH key生成及部署成功悔详。

否則,

  • 檢查對(duì)應(yīng)的key是否粘貼正確
  • 檢查操作步驟是否正確
  • Try again ~~~

如出現(xiàn)添加了公鑰后仍然無法推送代碼惹挟,則可以參看此處
注意: 要使用SSH鏈接操作遠(yuǎn)程倉庫茄螃,Git的Remote要使用SSH地址,關(guān)于Remote使用見這里


多平臺(tái)SSH key生成部署

此處以 Github碼云 為例连锯,做演示說明归苍。

類似單平臺(tái)SSH Key的創(chuàng)建,多個(gè)平臺(tái)生成命令做如下調(diào)整:


ssh-keygen -t rsa -C "平臺(tái)注冊(cè)的郵箱地址" -f "生成的rsa文件名"

注意: -f 后面帶的文件名稱运怖,不含路徑拼弃,則生成在當(dāng)前命令行路徑內(nèi)所在的目錄下。更多工具 ssh-keygen 的命令說明及使用見此處

通過此命令摇展,依次生成兩個(gè)平臺(tái)的key


$ ssh-keygen -t rsa -C "maple_6392@163.com" -f "github_id_rsa"
$ ssh-keygen -t rsa -C "maple_6392@163.com" -f "gitee_id_rsa"

# Generating public/private rsa key pair...
# 三次回車即可生成 ssh key

gitee_ssh_key
gitee_ssh_key

此時(shí) ~/.ssh 目錄下吻氧,生成的文件如下

ssh_dir
ssh_dir

此時(shí)對(duì)應(yīng)的SSH Key生成成功,具體添加平臺(tái)的步驟參看上文咏连,添加完成進(jìn)行驗(yàn)證時(shí)盯孙,出現(xiàn)如下提示:


$ ssh -T git@gitee.com
The authenticity of host 'gitee.com (218.11.0.86)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,218.11.0.86' (ECDSA) to the list of known hosts.
Permission denied (publickey).


此時(shí)可以參看 Windows下由于SSH配置文件的不匹配,導(dǎo)致的Permission denied (publickey)及其解決方法

文章內(nèi)說創(chuàng)建config文件祟滴,結(jié)合參考文章 【工具安裝和配置】 GIT同時(shí)連接gitlab和githubstrong text 嘗試后振惰,未解決問題。

此處解決踱启,使用 ssh-agent 工具报账,更多關(guān)于此工具的說明見此處研底。


ssh-agent解決Permission denied (publickey)問題

  • 首先確定工具是否可以使用

$ eval `ssh-agent`

## 控制臺(tái)輸出類似下面內(nèi)容,表示該工具可以使用(結(jié)果輸出為工具的進(jìn)程PID)
#  Agent pid 7488

注意: Windows系統(tǒng)下需在 git bashcmder 命令行界面下操作

  • 使用 ssh-add 工具將 SSH Key 添加到 ssh-agent

# 添加GitHub的SSH Key
$ ssh-add C:/Users/xxx/.ssh/github_id_rsa
# 添加碼云的SSH Key
$ ssh-add C:/Users/xxx/.ssh/gitee_id_rsa

## 此時(shí)可能需要輸入生成SSH Key時(shí)配置的密碼(如果有設(shè)置的話)透罢,成功后輸出類似以下內(nèi)容
# Identity added: C:/Users/xxx/.ssh/github_id_rsa (C:/Users/xxx/.ssh/github_id_rsa)
# Identity added: C:/Users/xxx/.ssh/gitee_id_rsa (C:/Users/xxx/.ssh/gitee_id_rsa)

如出現(xiàn)類似下面提示:


$ ssh-add C:\Users\xxx\.ssh\gitee_id_rsa
Could not open a connection to your authentication agent.

可以使用 ssh-agent bash --login -i 命令來啟動(dòng) ssh-agent

  • 最后使用 ssh -T git@xxx.com 命令驗(yàn)證Key是否添加成功

關(guān)于SSH的更多命令可以查看此處

雖然通過上面操作可以使用ssh連接多個(gè)git平臺(tái)榜晦,但使用git工具 TortoiseGit 進(jìn)行提交時(shí),依舊會(huì)出現(xiàn) Please make sure you have the correct access rights and the repository exists. 的提示羽圃,此時(shí)在bash控制臺(tái)通過 git push 命令則正常提交乾胶。。朽寞。 此問題待解決识窿,有知道怎么處理的朋友,希望可以告知脑融。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喻频,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肘迎,更是在濱河造成了極大的恐慌甥温,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妓布,死亡現(xiàn)場(chǎng)離奇詭異姻蚓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)匣沼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門狰挡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人释涛,你說我怎么就攤上這事加叁。” “怎么了枢贿?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵殉农,是天一觀的道長。 經(jīng)常有香客問我局荚,道長超凳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任耀态,我火速辦了婚禮轮傍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘首装。我一直安慰自己创夜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布仙逻。 她就那樣靜靜地躺著驰吓,像睡著了一般涧尿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上檬贰,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天姑廉,我揣著相機(jī)與錄音,去河邊找鬼翁涤。 笑死桥言,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的葵礼。 我是一名探鬼主播号阿,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鸳粉!你這毒婦竟也來了扔涧?” 一聲冷哼從身側(cè)響起昭躺,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤杠步,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疼约,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年蝙泼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了程剥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汤踏,死狀恐怖织鲸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溪胶,我是刑警寧澤搂擦,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站哗脖,受9級(jí)特大地震影響瀑踢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜才避,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一橱夭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桑逝,春花似錦棘劣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽首昔。三九已至,卻和暖如春糙俗,著一層夾襖步出監(jiān)牢的瞬間沙廉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工臼节, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撬陵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓网缝,卻偏偏與公主長得像巨税,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粉臊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容