最近棄用了 富文本編輯 ,轉到 markdown編輯 ,
已用markdown更了新一版,歡迎通路:
(git) 實作多ssh密鑰(免密)登入不同的Git系統
目錄:
1. 生成rsa密鑰:
2. 複制公鑰内容
3. 配置多密鑰
5. 驗證連接配接結果
6. win下使用其他工具送出的配置
6-1、使用tortoiseGit圖形工具
6-1-法1:替換shh.exe檔案
6-1-法2:使用.ppk檔案
6-2、使用IDEA自帶的版本工具
寫這篇部落格的緣由:
之前在的開發一直使用的github單個ssh的免密登陸,
後來使用了linux環境開發遇到了gogs,配置了多ssh免密登陸後感覺不是很繁瑣,一直沒做記錄,
後開開發環境有遷徙到了windows,摸索了一番,發現ssh在gitBush上沒有問題,筆記又擱淺了,
後來在圖形化工具使用ssh遇到了問題,被迫隻能使用https,
經過幾天摸索,整理了一些配置方法,完美的解決了現在的開發環境需求,
以下是配置的步驟:
1. 生成rsa密鑰:
ssh-keygen -t rsa -C 'comment' -f id_rsa_xxxx
[email protected]:~/.ssh# ssh-keygen -t rsa -C 'aas-gogs_adam.qiang_early-data' -f id_rsa_aas-gogs_adam.qiang_early-data
輸入密鑰的密碼(不填代表免密)
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_aas-gogs_adam.qiang_early-data.
Your public key has been saved in id_rsa_aas-gogs_adam.qiang_early-data.pub.
The key fingerprint is:
SHA256:hlRquS ..... .... xJJ84 aas-gogs_adam.qiang_early-data
The key's randomart image is:
+---[RSA 2048]----+
| =*B+ |
| |
| ........ |
| |
| ... o |
+----[SHA256]-----+
[email protected]:~/.ssh# ll
總用量 16
drwx------ 2 root root 4096 5月 13 18:06 ./
drwx------ 39 root root 4096 5月 13 16:57 ../
-rw------- 1 root root 1675 5月 13 18:06 id_rsa_aas-gogs_adam.qiang_early-data
-rw-r--r-- 1 root root 412 5月 13 18:06 id_rsa_aas-gogs_adam.qiang_early-data.pub
-rw-r--r-- 1 root root 0 5月 13 16:57 known_hosts
-t rsa -C '[email protected]' -f id_rsa_xxx
-t : The type of the key to generate
密鑰的類型
-C : comment to identify the key
用于識别這個密鑰的注釋(很多網站和軟體用這個注釋作為密鑰的名字)
-f : file name
生成檔案的名字
2. 複制公鑰内容
[email protected]:~/.ssh# cat id_rsa_aas-gogs_adam.qiang_early-data.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrZxCjPuWEgfalfWfue1k5cY7zKjAgtv6CO
..........
4U4TJGlRKiJuUxt aas-gogs_adam.qiang_early-data
将cat的xxx.pub 的内容, 複制到git管理頁面(github/gogs)“個人設定 --> SSH管理”
3. 配置多密鑰
[email protected]:~/.ssh# pwd
/root/.ssh
[email protected]:~/.ssh# touch config
[email protected]:~/.ssh# vim config
Host xxx.xxx.com ###可以随意命名,連結時使用這個名字
HostName xxx.xxx.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_aas-gogs_adam.qiang_early-data
Host github.com
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_github-adamqwy
Host gitee.com
HostName gitee.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_gitee-dkwm
每份秘鑰要與git網址對應。然後清空known_hosts檔案内容。
至此,大功告成。
我們可以通過ssh指令驗證結果。
注:在windows環境下,找到 %Git_HOME%\etc\ssh\ssh_config 檔案,将上述的“config”檔案的配置,添加到該檔案下即可,否則連不上(将會提示輸入git使用者的密碼)
這隻是讓windows下可以在gitBush方式下使用ssh,如果
!!windows下如果需要使用非gitBush的方式,請參考第6步
5. 驗證連接配接結果
[email protected]:~/.ssh# ssh -T [email protected]
Welcome to Gitee.com, 道空無名!
-T
ssh連接配接時不顯示終端
'[email protected]'
以碼雲為例:
在"clone and download" 的時候, 選擇'ssh'(注意,不是'https'),
會顯示以下連結:
'[email protected]:powersky/YouDaoNote.git'
==》 “git@域名:使用者名/項目名.git”
冒号 ':' 前的部分 ‘[email protected]’ 就是ssh位址
意思是 [email protected]
6. win下使用其他工具送出的配置
linux下開發,前5步就足夠了,但是一般情況下我們在windows下開發比較常見,最近遇到一些windows下git送出的問題,做了一些整理,如下:
6-1、使用tortoiseGit圖形工具
由于該工具使用的是putty的連接配接方式,是以預設的private key無法直接在該工具下使用
6-1-法1:替換shh.exe檔案
1) 右擊打開 Tortoise --》 settings
2) 選擇左側的 network 結點,替換右側的 SSH --》 SSH client
将原tortoiseGit目錄下的TortoiseGitPlink.exe,替換為
%GIT_HOME%\usr\bin\ssh.exe
3) 選擇左側的 Git --》 Remote 結點,在右側的選中一條遠端分支(例如:origin),
在Putty這個輸入框中,選擇我們之前配好的私鑰(例:id_rsa_aas-gogs_adam.qiang_early-data)
6-1-法2:使用.ppk檔案
1) 在tortoiseGit安裝目錄下,找到并打開 puttygen.exe 檔案
(就是方法1裡提到的TortoiseGitPlink.exe所屬的同級目錄,如果是在找不到安裝目錄,應該可以在開始菜單找到)
2) 點選 Load an existing private key 後面的 Load 按鈕,
選擇我們之前生成的rsa私鑰(注意是一個不帶字尾的檔案;找不到的話,注意下檔案的篩選條件[All Files])
3) 點選 Save the generated key 後面的 Save private key 按鈕,
(最好儲存為與私鑰檔案同名的.ppk檔案,并且放在同一個檔案夾下[.ssh/])
4) 同法1的最後一步,選擇剛才生成的.ppk私鑰檔案
上述兩種方法總結起來就是兩句話:
1.要麼換成 git 預設的 ssh.exe,使用原私鑰檔案;
2.要麼使用原TortoiseGitPlink.exe,重新生成并使用.ppk私鑰。
6-2、使用IDEA自帶的版本工具
windows下idea的配置,相比前者就沒有那麼繁瑣了,他可以使用本地的Git環境就行,方法如下:
1) 打開Settings,選擇 Version Control --》 Git
2) SSH executable 條件,将“Built-in”選擇 改為 “Native”
儲存設定即可
❤
碼字不易
,
整理費時
;
copy之前
,
請雙手合十
。