tortoisegit使用金鑰連線伺服器
阿新 • • 發佈:2019-02-06
git是個好東西,tortoisegit也是個好東西。在Windows下使用tortoisegit用的比較多,而對命令列的時候比較少。
對於tortoisegit可以支援使用金鑰有兩種,一種是支援openssh的金鑰,一種是支援putty的金鑰。但是這兩種不同,對於Linux的ssh一般都使用openssh,但是沒關係,我們可以轉換。
使用putty的金鑰
我們來看看這樣方式,在安裝TortoiseGit的時候其實會讓你選擇預設使用的ssh客戶端,預設情況下是使用TortoiseGitPlink這個客戶端。
生成putty金鑰
在安裝tortoisegit的時候,預設還會安裝有Puttygen.exe這個程式,這個程式是可以生成putty金鑰的。
點選Generate
按鈕後會按一個進度條,然後滑鼠不斷在該程式內動,目的是生成一些隨機數。
我第一次使用滑鼠傻傻的不動,然後進度條非常的緩慢,我想這個東西生成一個金鑰那麼慢?原來是我開啟的方式不對。
點選save private key
儲存putty的私鑰,putty的金鑰的字尾名是ppk。
在伺服器上新增openssh公鑰
我們在上面建立了putty的金鑰對,現在需要將生成的公鑰新增到伺服器上。
其實這裡也可以把公鑰新增到github.com上,也是可以使用的。 putty生成的公鑰是和openssh的的公鑰是相同的,他們只是私鑰不同
假設剛剛生成的公鑰是
1 |
ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAQEAi1vfwiNbamTPUOSpEWvQDYrefFcuPkUuZe5Y6r4l/xEAv7e9f5QDr6QEo215r2qBBnuixAgzpjZPSvr7S51qinuq6EyXm4kFGIW6B/L4zVjx5DKxofTno39xe58QQnAixoHNN9ccNhetcxEjp7gORo1k7AMuMuQY7V/6aekiOPfh6QsWuUMf6HZhZMqpu3q3xAqHlmOU5emAif4bQKZFghEYOftHZH+E+Yo+ed65KtOJ+V5PjPxD6RMGfx3A7MhsV5PXDijD7yu0b33r+mEDLoqRO1RDQUoviryBbuE4Gcu63a3J8+3GifXbrXOHzlMipAYtHxHjg5XuLGENlEmodw==
rsa-key |
登入到伺服器的需要新增公鑰的使用者名稱下,比如user1這個使用者名稱。
1 2 3 4 5 6 |
cd
/home/user1/
mkdir
. ssh
#如果這個目錄不存在
touch
. ssh /authorized_keys
#如果這個檔案不存在
chmod
600 . ssh /authorized_keys
#設定一下檔案的許可權
echo
"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAi1vfwiNbamTPUOSpEWvQDYrefFcuPkUuZe5Y6r4l/xEAv7e9f5QDr6QEo215r2qBBnuixAgzpjZPSvr7S51qinuq6EyXm4kFGIW6B/L4zVjx5DKxofTno39xe58QQnAixoHNN9ccNhetcxEjp7gORo1k7AMuMuQY7V/6aekiOPfh6QsWuUMf6HZhZMqpu3q3xAqHlmOU5emAif4bQKZFghEYOftHZH+E+Yo+ed65KtOJ+V5PjPxD6RMGfx3A7MhsV5PXDijD7yu0b33r+mEDLoqRO1RDQUoviryBbuE4Gcu63a3J8+3GifXbrXOHzlMipAYtHxHjg5XuLGENlEmodw==
rsa-key"
\
>>
. ssh /authorized_keys
#這個和上面是同一行的
|
注意:公鑰在authorized_keys的檔案形式是一行一個公鑰,切記。否則該公鑰不起作用。
在tortoisegit上使用金鑰
公鑰已經新增到伺服器去了,接下來就是在客戶端上設定金鑰了。
在git clone
的時候使用,如下設定:
這樣就可以搞定了。
putty金鑰與openssh金鑰轉化
如果你有putty的私鑰了,但是想在ssh客戶端下使用openssh的私鑰,再去生成一個openssh的金鑰對比較麻煩(能偷懶就偷懶嘛)。
-
點選
Conversions
選單項中的Import key
- 選擇一個putty的私鑰或者openssh的私鑰
-
點選
save private key
儲存為putty的私鑰 -
或者點選選單
Conversions
->Export OpenSSH Key
儲存為openssh的私鑰
SSH登入一直失敗
如果SSH登入一直失敗,看看是否許可權會有些問題?參考ssh金鑰登入失敗