天天看點

Git配置-多ssh密鑰的(免密)登入&&windows開發工具使用免密登陸1. 生成rsa密鑰:2. 複制公鑰内容3. 配置多密鑰 5. 驗證連接配接結果6. win下使用其他工具送出的配置

最近棄用了 富文本編輯 ,轉到 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之前

請雙手合十