首頁 >運維 >CentOS >如何配置SSH以確保對CentOS的安全遠程訪問?

如何配置SSH以確保對CentOS的安全遠程訪問?

Johnathan Smith
Johnathan Smith原創
2025-03-14 15:54:31261瀏覽

如何配置SSH以確保對CentOS的安全遠程訪問?

要在CentOS服務器上配置SSH以進行安全遠程訪問,請按照以下步驟:

  1. 更新您的系統:首先確保您的CentOS系統是最新的。作為root用戶運行以下命令:

     <code>sudo yum update sudo yum upgrade</code>
  2. 安裝OpenSSH :默認情況下通常安裝OpenSSH軟件包,但是如果不是,則可以使用以下方式安裝它:

     <code>sudo yum install openssh-server openssh-clients</code>
  3. 啟動和啟用SSH服務:確保SSH服務正在運行並設置為在啟動時開始:

     <code>sudo systemctl start sshd sudo systemctl enable sshd</code>
  4. 配置SSH :編輯SSH配置文件( /etc/ssh/sshd_config )以自定義設置。用文本編輯器打開它:

     <code>sudo nano /etc/ssh/sshd_config</code>

    要考慮的關鍵設置包括:

    • 更改默認端口(例如Port 2222 )。
    • 禁用根登錄( PermitRootLogin no )。
    • 僅允許特定的用戶或組( AllowUsers user1 user2AllowGroups groupname )。
  5. 重新啟動SSH服務:進行更改後,重新啟動SSH服務以應用它們:

     <code>sudo systemctl restart sshd</code>
  6. 測試連接:從另一台計算機,使用新設置測試SSH連接:

     <code>ssh -p 2222 user@your_server_ip</code>

通過遵循以下步驟,您將使用SSH配置為安全遠程訪問CentOS服務器。

在CentOS服務器上確保SSH的最佳實踐是什麼?

為了在CentOS服務器上提高SSH的安全性,請考慮實施以下最佳實踐:

  1. 使用非標準端口:將默認的SSH端口從22更改為非標準端口(例如,2222),以減少自動攻擊的可能性。
  2. 禁用根登錄:通過在SSH配置文件中設置允許Rootlogin PermitRootLogin no直接通過SSH登錄。這迫使用戶登錄非根本帳戶,然後使用sudo進行管理任務。
  3. 使用SSH鍵代替密碼:通過在SSH配置文件中設置PasswordAuthentication no啟用基於密鑰的身份驗證和禁用密碼身份驗證。這大大降低了蠻力攻擊的風險。
  4. 實現兩因素身份驗證(2FA) :使用2FA添加一層安全層。諸如Google Authenticator或Duo Security之類的工具可以與SSH集成。
  5. 限制用戶訪問:使用SSH配置中的AllowUsersAllowGroups限制哪些用戶可以通過SSH訪問服務器。
  6. 使用SSH協議2 :確保僅通過在配置文件中的設置Protocol 2允許使用SSH協議2,因為協議1具有已知的安全漏洞。
  7. 定期更新和修補程序:保持您的SSH服務器和CentOS系統使用最新的安全補丁進行更新,以防止已知漏洞。
  8. 實施Fail2BAN :此工具可以通過監視登錄嘗試以及臨時或永久禁止顯示惡意行為的IP地址來幫助防止蠻力攻擊。
  9. 使用防火牆:配置防火牆,以僅允許來自受信任的IP地址或網絡的SSH連接。

通過遵循這些最佳實踐,您可以顯著提高CentOS服務器上SSH的安全性。

我可以限制SSH訪問CentOS上的特定用戶嗎?

是的,您可以通過修改SSH配置文件來限制SSH訪問CentOS上的特定用戶。這是這樣做的方法:

  1. 編輯SSH配置文件:在文本編輯器中打開SSH配置文件:

     <code>sudo nano /etc/ssh/sshd_config</code>
  2. 添加允許使用者指令:添加AllowUsers指令,然後添加您希望允許的用戶名。例如:

     <code>AllowUsers user1 user2 user3</code>

    這將僅允許user1user2user3通過SSH訪問服務器。

  3. 添加AllowGroup指令:或者,您可以使用AllowGroups指令基於組成員資格允許訪問。首先,確保用戶屬於指定組的一部分,然後添加:

     <code>AllowGroups ssh_users</code>

    這將允許ssh_users組中的所有用戶通過SSH訪問服務器。

  4. 重新啟動SSH服務:進行更改後,重新啟動SSH服務以應用它們:

     <code>sudo systemctl restart sshd</code>

通過使用這些指令,您可以有效地限制SSH訪問CentOS服務器上特定用戶或組的訪問。

如何在CentOS上設置SSH的基於密鑰的身份驗證?

在CENTOS上設置基於密鑰的SSH驗證涉及在客戶端計算機上生成SSH鍵,並配置服務器以接受這些鍵。這是逐步指南:

  1. 在客戶端上生成SSH鍵

    • 在客戶端計算機上打開終端。
    • 運行以下命令生成新的SSH鍵對:

       <code>ssh-keygen -t rsa -b 4096 -C "your_email@example.com"</code>
    • 按Enter將鍵保存在默認位置( ~/.ssh/id_rsa )中。
  2. 將公共密鑰複製到服務器

    • 使用ssh-copy-id命令將公共密鑰複製到CentOS服務器:

       <code>ssh-copy-id user@your_server_ip</code>
    • 如果沒有ssh-copy-id ,請手動複製~/.ssh/id_rsa.pub的內容,然後將其附加到服務器上的~/.ssh/authorized_keys文件。
  3. 在服務器上配置SSH

    • 登錄到CentOS服務器。
    • 打開SSH配置文件:

       <code>sudo nano /etc/ssh/sshd_config</code>
    • 通過確保以下設置到位:啟用基於密鑰的身份驗證:

       <code>PubkeyAuthentication yes PasswordAuthentication no</code>
    • 如果存在AuthorizedKeysFile線,請確保將其設置為:

       <code>AuthorizedKeysFile .ssh/authorized_keys</code>
  4. 重新啟動SSH服務

    • 修改配置文件後,重新啟動SSH服務以應用更改:

       <code>sudo systemctl restart sshd</code>
  5. 測試基於密鑰的身份驗證

    • 從客戶端計算機中,嘗試使用SSH鍵登錄到服務器:

       <code>ssh user@your_server_ip</code>
    • 如果配置正確,則應該能夠在不輸入密碼的情況下登錄。

通過遵循以下步驟,您可以在CENTOS服務器上設置SSH的基於密鑰的身份驗證,從而通過消除對基於密碼的登錄的需求來增強其安全性。

以上是如何配置SSH以確保對CentOS的安全遠程訪問?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn