一、生成SSH密鑰對
SSH-Keygen是一個基於密鑰對的安全連接工具,而密鑰對就是由公鑰和私鑰組成。以下是使用SSH-Keygen生成密鑰對的步驟:
$ ssh-keygen
在提示符下輸入上述命令並按回車鍵,會出現如下畫面:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
默認情況下,SSH-Keygen會將密鑰對存儲在默認路徑 /root/.ssh/id_rsa 中。如果需要更改默認路徑,直接輸入新路徑即可。
接下來程序會要求輸入passphrase,建議使用隨機生成的強密碼。當然,如果不需要設置passphrase,則可以直接按“Enter”跳過此步驟。如下所示:
Enter passphrase (empty for no passphrase): Enter same passphrase again:
成功設置好密鑰對後,會在終端上輸出類似以下的信息:
Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: The key's randomart image is: +---[RSA 2048]----+ | ...oo| | . oo | | .o.. | | . o | | S . + .| | o . o . E. | | . o . o o . | | . o o. .o | | o..o.. . | +-----END RSA KEY-+
二、安全設置
一旦生成密鑰對,下一步便是安全地設置文件權限。根據安全原則,應該只允許密鑰擁有者有讀、寫權限。
執行以下命令,即可設置文件權限:
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/id_rsa $ chmod 644 ~/.ssh/id_rsa.pub
三、使用SSH密鑰對
生成SSH密鑰對後,用戶需要將公鑰文件傳輸到服務器端,以便將公鑰文件添加到授權文件中。具體操作如下:
1、使用以下命令查看公鑰:
$ cat ~/.ssh/id_rsa.pub
將公鑰文件的內容複製到終端,然後保存。而後,將該公鑰文件內容複製到服務器的 ~/.ssh/authorized_keys 文件中。
2、新開終端,在終端中輸入如下命令,鏈接到服務器:
$ ssh user@host
注意: 在上述命令中,user是服務器登錄名,host是目標服務器的IP地址或域名。
如果這是第一次連接服務器,會看到類似於以下的內容:
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is 3f:1b:f4:bd:47:xx:xx:xx:xx:xx:xx:xx:f2:4f:b3:c0. Are you sure you want to continue connecting (yes/no)?
這時輸入“yes”並按回車鍵。
之後會提示輸入密碼,如需跳過密碼輸入可在步驟1中設置passphrase,或在此處直接按回車鍵。
如果SSH-Keygen生成的公鑰文件已添加到授權文件中,連接會順利完成,不會再次要求輸入密碼。
四、使用不同的算法來生成密鑰對
以 Edward Curve 為例,這種加密方式能提高安全性:
$ ssh-keygen -t ed25519
提示符將會要求設置文件存儲路徑,還要求設置加密密碼等信息。
五、SSH-Keygen常見問題排查
如果ssh-keygen命令無法工作,或者拋出“fatal error”或“command not found”類似的錯誤信息,用戶可以嘗試以下排查方法。
1、檢查SSH-Keygen是否正在運行
如果一個SSH-Keygen進程正在運行,再次運行可能會引起衝突。通過運行以下命令,用戶能夠確認進程是否正在執行。
$ ps aux | grep ssh-keygen
2、確認SSH-Keygen是否安裝
如果SSH-Keygen未安裝,則用戶需要先安裝OpenSSH Client和Server。可以執行以下命令,檢查OpenSSH Server包是否已安裝:
$ dpkg-query -W openssh-server
3、確認錯誤消息是否還包含其他信息
如果錯誤消息僅提到了“ssh-keygen”,因此它不具有足夠的信息來確切地解決問題。將終端窗口中的代碼和錯誤消息複製並進行搜索,並查找解決方案。
4、確認您是否有適當的許可權
如果用戶沒有訪問/tmp或/ var / log目錄以及SSH-Keygen命令的其他必備文件的足夠權限,則可能無法運行。
六、總結
通過使用SSH-Keygen生成密鑰對,可以建立基於密鑰的安全連接,提高遠程登陸的安全性。用戶應該合理設置密鑰的存儲路徑、加密密碼等關鍵因素,同時進行良好的安全設置和SSH-Keygen常見問題排查,以提高安全性並避免可能的錯誤。
原創文章,作者:CBZSZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/333732.html