1. 程式人生 > >Git的.ssh資料夾的內容

Git的.ssh資料夾的內容

1. rsa與rsa.pub

首先是rsa與rsa.pub是如何產生的,產生的命令如下:

ssh-keygen -t rsa -C "[email protected]"

解釋:ssh-keygen是產生金鑰,金鑰有兩種型別rsa和dsa兩種,-t用來指定金鑰型別,-t rsa是將金鑰型別指定為rsa,-C是公鑰中的備註,通常指定為自己的郵箱。

上面的命令執行後會讓你輸入金鑰的名字,通常為id_rsa,如果有多個金鑰則需要輸入不同的名字。id_rsa和id_rsa.pub。id_rsa為私有金鑰,id_rsa.pub為公有金鑰。id_rsa.pub公鑰是我們用來在Github的profile中的SSH and GPG keys中輸入的,id_rsa是我們的私鑰,當我們從Github上請求內容時,例如clone時,Github伺服器會通過演算法計算私有金鑰,並將計算結果與公有金鑰比對,如果不一致會提示訪問失敗。

測試是否連線成功可以使用如下命令:

ssh -T [email protected]

2. config檔案

config檔案主要在配置多個git賬戶時使用的,裡面主要配置了訪問不同的主機(Host)時採用不同的金鑰。檔案內容例如:

#公司的git地址
Host git.***.com  
   User git
   Hostname git.***.com  #公司的git地址
   IdentityFile ~/.ssh/id_rsa  #訪問公司git的SSH KEY
   Port   ***  #公司的git埠

Host github.com
   User git
   Hostname github.com #github的地址
   IdentityFile 
~/.ssh/id_rsa_github #訪問github的SSH KEY

3. known_hosts檔案

這個檔案主要是用來記錄伺服器端的Host,IP以及rsa檔案的。

有時候你訪問Git伺服器,會報Host key verification failed,主機金鑰驗證失敗。主機就是自己的電腦了,金鑰失敗主要有兩種情況:一、RSA金鑰改了;二、known_hosts檔案中存在快取記錄,如果不是RSA的問題,那應該就是known_hosts檔案的問題了,此時檢視錯誤資訊裡有一條:

Offending ECDSA key in
/Users/username/.ssh/known_hosts: 5

上面的最後一位數可能是別的,你只需要找到對應的那條記錄,刪掉即可。當然也可以直接刪掉known_hosts檔案。known_hosts檔案主要是用來進行快取的,快取主要是為了減少驗證次數,不用每次都驗證,直接讀取快取即可。