1. 程式人生 > >tortoisegit使用金鑰連線伺服器

tortoisegit使用金鑰連線伺服器

git是個好東西,tortoisegit也是個好東西。在Windows下使用tortoisegit用的比較多,而對命令列的時候比較少。

對於tortoisegit可以支援使用金鑰有兩種,一種是支援openssh的金鑰,一種是支援putty的金鑰。但是這兩種不同,對於Linux的ssh一般都使用openssh,但是沒關係,我們可以轉換。

使用putty的金鑰

我們來看看這樣方式,在安裝TortoiseGit的時候其實會讓你選擇預設使用的ssh客戶端,預設情況下是使用TortoiseGitPlink這個客戶端。

指定ssh的客戶端為TortoiseGit

生成putty金鑰

在安裝tortoisegit的時候,預設還會安裝有Puttygen.exe這個程式,這個程式是可以生成putty金鑰的。

點選Generate按鈕後會按一個進度條,然後滑鼠不斷在該程式內動,目的是生成一些隨機數。

我第一次使用滑鼠傻傻的不動,然後進度條非常的緩慢,我想這個東西生成一個金鑰那麼慢?原來是我開啟的方式不對。

putty金鑰生成

點選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的時候使用,如下設定:

git clone設定putty私鑰

這樣就可以搞定了。

putty金鑰與openssh金鑰轉化

如果你有putty的私鑰了,但是想在ssh客戶端下使用openssh的私鑰,再去生成一個openssh的金鑰對比較麻煩(能偷懶就偷懶嘛)。

  1. 點選Conversions選單項中的Import key
  2. 選擇一個putty的私鑰或者openssh的私鑰
  3. 點選save private key儲存為putty的私鑰
  4. 或者點選選單Conversions->Export OpenSSH Key儲存為openssh的私鑰

SSH登入一直失敗

如果SSH登入一直失敗,看看是否許可權會有些問題?參考ssh金鑰登入失敗

相關資料