Git的.ssh資料夾的內容
阿新 • • 發佈:2018-12-15
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檔案主要是用來進行快取的,快取主要是為了減少驗證次數,不用每次都驗證,直接讀取快取即可。