本教程將向您展示如何設置它。 SSH公鑰認證 CentOS / RHEL 桌面。 基本上有兩種方法可以通過 OpenSSH 服務器驗證用戶登錄。 密碼認證 什麼時候 公鑰認證後者也被稱為 SSH無密碼登錄 您不必輸入密碼。
第 1 步:在您的 CentOS / RHEL 桌面上生成 SSH 公鑰/私鑰對
在 CentOS / RHEL 桌面(不是服務器)上,在終端窗口中輸入以下命令:
ssh-keygen -t rsa -b 4096
在哪裡:
-t
代表type
上述命令將生成一個 RSA 類型的密鑰對。 RSA 是默認類型。-b
代表bits
..默認情況下,密鑰長度為 3072 位。它使用 4096 位密鑰來增加安全性。
當提示輸入文件以保存密鑰時,只需按下它。 Enter
使用默認文件。然後輸入至少 20 個字符的適當密碼。密碼用於加密私鑰。
- 保留私鑰(不要與任何人共享) .ssh / id_rsa 主目錄中的文件。
- 公鑰存儲在 .ssh / id_rsa.pub 文檔。
您可以從隨機藝術圖像中檢查密鑰長度(RSA 4096
)。然後運行以下命令:
file ~/.ssh/id_rsa
您應該看到以下輸出:
/home/username/.ssh/id_rsa: OpenSSH private key
如果您收到錯誤“沒有這樣的文件或目錄”,則表示尚未創建 SSH 密鑰對。超限 ssh-keygen -t rsa -b 4096
重新創建的命令。
第 2 步:將 SSH 公鑰上傳到遠程 Linux 服務器
暗示:遠程服務器可以運行任何 Linux 發行版,例如 Debian、Ubuntu、RHEL、CentOS 等。 只要 OpenSSH 服務器正在運行,就可以使用以下方法:
這很容易做到 ssh-copy-id
訂購,隨行 openssh-clients
盒。
ssh-copy-id remote-user@server-ip
輸入遠程用戶的密碼。
公鑰存儲在 .ssh / 授權密鑰 遠程用戶主目錄中的文件。然後通過 SSH 連接到遠程服務器。
ssh remote-user@server-ip
這個時候需要輸入RSA 鑰匙 密碼 解鎖私鑰。您可以在登錄時自動解鎖密鑰,以便您以後不必輸入密碼。
輸入正確的密鑰密碼登錄遠程Linux服務器。然後關閉遠程服務器。
exit
然後通過 SSH 重新連接到遠程服務器。
ssh remote-user@server-ip
這一次,您將自動登錄到遠程服務器,而無需輸入密碼或密鑰密碼。此外,您在使用時不必輸入密碼或密鑰密碼。 scp
傳輸文件的命令。這個 scp
指揮者 openssh-clients
包裹。 它默認安裝在 CentOS / RHEL 桌面上。
在遠程服務器上執行 SSH 公鑰認證
目前默認使用 SSH 密鑰登錄服務器,但您也可以使用密碼在另一台計算機上登錄服務器。黑客不希望對服務器發起暴力攻擊,因此建議在 OpenSSH 服務器上禁用密碼驗證。
禁用密碼驗證 /etc/ssh/sshd_config
遠程服務器上的文件。
sudo nano /etc/ssh/sshd_config
找到這一行:
#PasswordAuthentication yes
進行以下更改:
PasswordAuthentication no
找下一個 ChallengeResponseAuthentication
金屬絲。確保該值設置為 no
如下。如果設置為 yes
您可以繼續使用您的密碼登錄。
ChallengeResponseAuthentication no
保存文件並重新啟動 SSH 服務。
sudo systemctl restart sshd
如果沒有對應的私鑰 ~/.ssh
對於目錄,當您嘗試通過 SSH 連接到遠程服務器時,您會收到以下錯誤:
Permission denied (publickey).
這意味著遠程服務器將只允許使用 ssh 密鑰進行 SSH 登錄,而不是密碼驗證。 筆記 設置時 PasswordAuthentication
到達 no
什麼時候 ChallengeResponseAuthentication
到達 yes
, 您可以繼續使用您的密碼登錄。要禁用密碼登錄,兩者都必須設置如下: no
..
備份您的公鑰和私鑰對
禁用 SSH 密碼驗證後備份 SSH 密鑰很重要。如果您丟失了密鑰,您將被鎖定在服務器之外。將您的公鑰/私鑰對備份到安全位置,例如 USB 驅動器。
cp ~/.ssh/id_rsa* /path/to/safe/location/
您可以將密鑰對複製到新的 Linux 計算機,然後使用 SSH 密鑰通過 SSH 連接到服務器。將密鑰對複製到新計算機後,將它們移動到 .ssh/
新用戶的目錄。
mv id_rsa* ~/.ssh/
您需要將密鑰對的所有者更改為新計算機的用戶。
sudo chown new-user:new-user ~/.ssh/id_rsa*
您現在可以使用 SSH 密鑰登錄到新計算機上的遠程服務器。
您還可以將密鑰對保存到文件夾中,對文件夾進行加密、壓縮,然後將其發送到 NextCloud 等雲存儲。
允許來自受信任 IP 地址的密碼驗證
您還可以允許從您自己的 IP 地址進行密碼驗證。因此,如果您丟失了 SSH 密鑰,您可以通過 SSH 連接到服務器。
暗示: 如果您沒有靜態 IP 地址,您可以在您的數據中心設置一個自託管 VPN 服務器。
打開遠程服務器上的 SSH 守護程序配置文件。
sudo nano /etc/ssh/sshd_config
將以下行添加到文件末尾。 將 10.0.0.2 替換為您自己的 IP 地址。
Match Address 10.0.0.2
PasswordAuthentication yes
如果客戶端從 192.168.0.2 連接,則允許密碼驗證。您可以添加多個 IP 地址。
Match Address 10.0.0.2 10.0.0.3 PasswordAuthentication yes
或者,使用 CIDR 表示法,如下所示:
Match Address 10.0.0.0/24
PasswordAuthentication yes
保存並關閉文件。 重新啟動 OpenSSH 服務器。
sudo systemctl restart sshd
更改私鑰的密碼
如果您需要更改您的私鑰密碼,您可以使用以下命令:
ssh-keygen -f ~/.ssh/id_rsa -p
輸入舊密碼,然後輸入新密碼。
包起來
希望本教程可以幫助您設置 SSH公鑰認證 CentOS / RHEL 桌面。另外,請閱讀以下內容。
- 在 Windows 上使用 SSH 登錄 Linux 服務器的三種方法
與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?