嘿!今天我們將討論一個極其重要的主題 – 如何禁止 root 管理者通過 SSH 登入您的 Linux 伺服器,從而提高系統的安全性。這是一個關鍵性的步驟,可以幫助我們減少潛在的風險和防止不懷好意的入侵者。
為什麼要禁止 root SSH 登入?
讓我們來看看為什麼要禁止 root 使用 SSH 登入。一般情況下,大多數 Linux 發行版允許 root 用戶通過 SSH 登入,但這實際上是一個安全風險。如果黑客試圖入侵您的伺服器,他們將首先嘗試 root 用戶,因為 root 擁有系統上的最高權限。如果我們禁止 root SSH 登入,攻擊者將無法直接使用 root 用戶名進行入侵,這樣就增加了系統的安全性。
如何禁止 root SSH 登入?
現在,讓我們來看看如何實現禁止 root SSH 登入。這是一個簡單的過程,但需要小心操作,以免鎖定自己出伺服器。
Step1 以 sudo 開啟 /etc/ssh/sshd_config
以具有 sudo 權限的用戶打開 SSH 配置文件,通常是 /etc/ssh/sshd_config
。
Step2 設定 /etc/ssh/sshd_config
以 root
管理者權限編輯 /etc/ssh/sshd_config
這個 SSH 服務的設定檔,找到 PermitRootLogin
選項,並將其設置為 no
。 即可關閉 root
遠端登入的功能
# 禁止 root 管理者登入
PermitRootLogin no
若只希望 root
管理者允許公鑰認證方式登入,可以將 PermitRootLogin
設定為 prohibit-password
或 without-password
這兩個參數意思其實一樣,without-password
用意在於表達更明確。
# 禁止 root 管理者以密碼認證登入(允許公鑰認證方式登入)
PermitRootLogin without-password
Step3 啟動 SSH 服務
儲存文件並重新啟動 SSH 服務。
# 重新啟動 SSH 服務
sudo systemctl restart sshd
這樣,您已經成功禁止了 root 用戶的 SSH 登入。從現在開始,您將需要使用其他非 root 用戶登入,然後再使用 sudo
提升權限執行需要 root 權限的操作。
特殊參數說明 forced-commands-only
PermitRootLogin forced-commands-only
- 這個選項是一個比較特殊且限制性較高的設置。
- 它僅允許 root 用戶以非互動方式執行指定的命令,而不允許一般的互動式 SSH 會話。
- 假設您希望 root 用戶能夠遠程執行特定命令,但不希望他們能夠進行常規的互動式 SSH 會話,這個選項非常有用。
- 要使用這個選項,您需要在 SSH 配置文件中指定
ForceCommand
選項,並設置要執行的命令。例如:
#這將告訴 SSH 伺服器,只有當 root 用戶嘗試連接時,它們將被強制執行 /path/to/your/command,而不允許其他操作。ForceCommand /path/to/your/command
使用情境:限制 root 用戶的 SCP 命令
假設您管理一個 Linux 伺服器,其中包含敏感數據,並且您希望 root 用戶能夠遠程傳輸文件,但僅限於使用 SCP(Secure Copy)命令,而不允許他們執行其他命令或進行互動式 SSH 會話。
在這種情況下,您可以配置 forced-commands-only
選項,以強制 root 用戶只能執行 SCP 命令。這樣可以確保他們無法進行其他操作,從而增強了伺服器的安全性。
以下是如何配置的說明:
- 添加以下內容,指定要執行的 SCP 命令:shellCopy這裡,我們使用
Match
段來限制這個配置僅適用於 root 用戶。然後,我們使用ForceCommand
選項指定了要執行的 SCP 命令,並設置了目的目錄。
PermitRootLogin forced-commands-only
Match User root
ForceCommand /usr/bin/scp -t /destination/directory
- 儲存文件並重新啟動 SSH 服務
sudo service ssh restart
現在,當 root 用戶嘗試通過 SSH 登入伺服器時,他們將被強制執行指定的 SCP 命令,而不允許其他操作。這確保了他們只能使用 SCP 命令來進行文件傳輸,並加強了伺服器的安全性。
確保您具有替代權限
最後,請確保您具有另一個具有 sudo 權限的用戶帳戶,以防止在禁止 root SSH 登入後被鎖定在伺服器外部。這是確保您可以繼續管理伺服器的關鍵。
總結一下,禁止 root SSH 登入是一個重要的步驟,可以增強 Linux 系統的安全性。這樣,您可以減少潛在的風險,並確保您的伺服器不易受到不懷好意的入侵者的攻擊。記住,網絡安全是一個持續的過程,定期審查和更新您的安全措施非常重要。
希望這篇文章對您有所幫助,如果您有任何問題或意見,請隨時在下面留言,我們將樂意回答您的問題!
- 中文參考資料:
- 英文參考資料:
延伸閱讀:如何使用 Linux SSH 安全加密連線,指令教學及設定檔配置範例
延伸閱讀:如何精準快速處理文字資料? 5分鐘學會 cut 指令教學與常用範例整理