如何在 CentOS 7 上生成和設定 SSH 金鑰?
簡介
在當今的數字時代,安全通訊對於個人和企業都至關重要。當敏感資料透過網際網路傳輸時,務必確保其機密性和免受未經授權的訪問。這就是 SSH 金鑰發揮作用的地方。
SSH 金鑰是一種身份驗證方法,用於在兩個網路裝置之間建立安全連線。它們是加密金鑰,透過加密實現安全資料傳輸。
與傳統的使用者名稱/密碼身份驗證方法不同,SSH 金鑰更加安全。密碼可能會被猜測或破解,但 SSH 金鑰對幾乎不可能被破解。
在 CentOS 7 上生成 SSH 金鑰
安全通訊的關鍵
SSH 金鑰對於在兩個系統之間建立安全通訊至關重要。它們本質上是一對加密金鑰——公鑰和私鑰——可以使用 ssh-keygen 命令建立。
私鑰儲存在客戶端系統上,而公鑰則複製到客戶端希望訪問的伺服器上。當客戶端嘗試連線到伺服器時,它會發送其公鑰以及身份驗證請求。
分步指南
在 CentOS 7 上生成 SSH 金鑰的過程涉及使用 ssh-keygen 命令,該命令預裝在大多數 Linux 發行版(包括 CentOS 7)中。要生成 RSA(Rivest-Shamir-Adleman)型別的 SSH 金鑰對,請按照以下步驟操作:
開啟您的終端或命令提示符。
鍵入 `ssh-keygen` 並按 Enter 鍵。
您將看到一個提示,詢問您希望將新金鑰儲存到哪裡。預設位置通常沒問題,因此只需按 Enter 鍵即可。
您還會被提示輸入密碼短語(密碼)。通常建議您在此處選擇一個強密碼,因為如果有人能夠訪問您的私鑰,他們將擁有完全訪問許可權,就像他們就是您一樣!
當提示輸入空密碼短語時,再按兩次 Enter 鍵(除非您想要一個)。您現在已成功生成您的 RSA SSH 金鑰!
金鑰生成期間可用的選項
在生成過程中,有幾個選項可用於額外控制 SSH 金鑰的建立方式。例如:
金鑰型別 - RSA 是預設選項,但您也可以使用 DSA(數字簽名演算法)或 ECDSA(橢圓曲線數字簽名演算法)生成金鑰。- 金鑰大小:RSA 和 DSA 的預設金鑰大小為 2048 位,但如果需要更高的安全性,可以增加此值。
密碼短語 - 密碼短語是可選的,但它為您的 SSH 金鑰添加了另一層安全性。確保選擇一個強密碼,其中包含大寫和小寫字母、符號和數字。
在 CentOS 7 上設定 SSH 金鑰
使用 ssh-copy-id 命令將公鑰複製到遠端伺服器
生成 SSH 金鑰後,下一步是將您的公鑰複製到您要訪問的遠端伺服器。最簡單的方法是使用 ssh-copy-id 命令。此命令會自動將您的公鑰複製到遠端伺服器的 authorized_keys 檔案中,允許您使用私鑰進行身份驗證。
使用此命令的語法如下:
ssh-copy-id username@remote_server_ip_address
將“使用者名稱”替換為您想要訪問遠端伺服器上的帳戶的使用者名稱,並將“遠端伺服器 IP 地址”替換為其 IP 地址或域名。在此過程中,系統會提示您輸入遠端伺服器上的密碼。
複製公鑰的其他方法
如果由於某種原因(例如,它未安裝在本地或遠端系統上)無法使用 ssh-copy-id,則可以使用其他方法手動複製公鑰。一種方法是使用文字編輯器並將您的公鑰複製貼上到遠端伺服器上 authorized_keys 檔案的新行中。為此,請按照以下步驟操作:
開啟一個新的終端視窗並導航到您的公鑰所在的目錄。
使用 cat 或 more 命令檢視其內容:
cat ~/.ssh/id_rsa.pub
複製此檔案的所有內容。
以 root 身份登入或使用 sudo su 並以 nano 方式開啟 SSH 配置檔案:
nano ~/.ssh/authorized_keys
在此處貼上複製的內容。
儲存更改並關閉 nano。
故障排除設定過程中的常見問題
在 SSH 金鑰設定過程中可能會出現一些常見問題。最常見的問題之一是 authorized_keys 檔案或其父目錄的許可權不正確。這可能會阻止您的公鑰被複制到 authorized_keys 檔案中,或者阻止您使用私鑰訪問遠端伺服器。
要解決此問題,請確保 .ssh 目錄和 authorized_keys 檔案的許可權分別設定為 700 和 600:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
另一個可能出現的問題是 authorized_keys 檔案中公鑰的格式不正確。
確保您的公鑰格式正確,沒有換行符,並且它位於此檔案中的單行上。如果在此過程中遇到任何其他問題,請檢查 CentOS 系統上的 /var/log/secure 中的日誌,以查詢有關問題所在的有用資訊。
SSH 金鑰管理的高階主題
不同型別 SSH 金鑰(例如 RSA、DSA、ECDSA)的概述
SSH 金鑰有多種型別,每種型別都有其自己的一組獨特特徵,使其更適合某些用例。三種最常用的 SSH 金鑰型別是 RSA、DSA 和 ECDSA。RSA 是最廣泛使用的 SSH 金鑰型別,支援從 1024 到 4096 位的金鑰大小。
它被認為對於大多數用途都是安全可靠的。DSA 金鑰的使用頻率較低,但與 RSA 金鑰相比,其簽名和驗證速度更快。
但是,DSA 的最大金鑰大小限制為 1024 位,並且被認為不如 RSA 安全。ECDSA 是一種較新的 SSH 金鑰型別,它使用橢圓曲線密碼學而不是 RSA 和 DSA 使用的更傳統的方法。
它提供更快的簽名時間和更小的金鑰大小,同時保持強大的安全特性。但是,並非所有伺服器或客戶端都支援它。
對不同伺服器或用途使用多個金鑰
使用者通常需要使用 SSH 金鑰訪問多個伺服器,每個伺服器都有其自己的一組要求(例如,不同的使用者名稱或密碼短語)。在這些情況下,務必為每個伺服器使用單獨的金鑰,以最大程度地降低金鑰被洩露的風險。要在同一臺客戶端計算機上使用多個 SSH 金鑰,您需要使用每個金鑰對的唯一檔名(例如,id_rsa_server1)建立單獨的私鑰/公鑰對。
然後,您可以透過使用 IdentityFile 等選項設定 ssh 配置檔案來指定連線到特定伺服器時應使用哪個金鑰。多個金鑰的另一個用例是在訪問需要透過 SSH 進行身份驗證的不同服務或應用程式時。
例如,您可能有一組金鑰用於訪問 Git 儲存庫,另一組金鑰用於登入遠端伺服器。透過使用單獨的金鑰,您可以最大程度地降低與一個金鑰被洩露相關的風險。
結論
在本文中,我們介紹了在 CentOS 7 上生成和設定 SSH 金鑰的步驟。我們探討了 SSH 金鑰在安全通訊中的重要性以及將其用於身份驗證的好處。在生成 SSH 金鑰時,務必選擇一個難以猜測或暴力破解的強密碼。
此外,我們還介紹了將公鑰複製到遠端伺服器的不同方法以及故障排除設定過程中的常見問題。定期更新和輪換您的 SSH 金鑰以維護其安全性至關重要。