本教程將向您展示如何設置它。 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 鑰匙 密碼 解鎖私鑰。您可以在登錄時自動解鎖密鑰,以便您以後不必輸入密碼。

生成 ssh 公鑰 centos

輸入正確的密鑰密碼登錄遠程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 服務器的三種方法

與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?