如何在Linux系統上使用SSH金鑰啟用root使用者的SSH登入

若要啟用 root 使用者使用公鑰進行 SSH 登錄,請將公鑰新增至 root 使用者的設定檔中authorized_keys,設定`sshd_config` PermitRootLogin prohibit-password,驗證 OpenSSH 配置,然後重新載入服務。這樣,root 使用者就可以使用公鑰登錄,同時阻止密碼和鍵盤互動式身份驗證。有關選項定義,請參閱 OpenSSH 的 ` sshd_config` 手冊。

終端機透過 SSH 以管理員帳戶連接到 Linux 伺服器。
此終端圖示顯示了信任提示;在接受之前,請透過可信任通道驗證實際的主機指紋。

直接 root 存取權限賦予持有有效金鑰的使用者不受限制的控制權。請僅在您管理的系統上使用,最好是在私人網路或防火牆後使用。對於日常工作,請使用指定使用者身分登入並使用 root 權限sudo。在變更遠端 SSH 設定之前,請保持目前會話打開,並確保您有其他復原路徑。

在編輯 SSH 伺服器之前

  • 使用可以運行的帳戶進行連接sudo,並確認 OpenSSH 伺服器正在運行。
  • 準備好客戶端 SSH 金鑰對。您需要複製公鑰(通常是以 .ssh 結尾的檔案.pub);切勿共用私鑰。

不要僅為基於金鑰的 SSH 設定 root 密碼。密碼鎖定和公鑰存取是兩種不同的控制方式,儘管發行版帳戶策略可能會影響登入。 Ubuntu的使用者管理指南解釋說,單獨鎖定密碼並不會停用現有的 SSH 金鑰存取。

啟用基於金鑰的 root SSH 登入

1. 以常規管理員身份連接

在客戶端終端機中,連線到已擁有 sudo 權限的帳戶:

ssh admin@server.example.com

請替換範例值。在接受新的主機金鑰指紋之前,請透過可信任頻道進行驗證。

2. 將您的公鑰加入 root 使用者的帳號中

在伺服器上,建立權限受限的 root 使用者 SSH 目錄,然後編輯授權金鑰清單:

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

將完整的公鑰貼在一行中並保存。切勿貼上私鑰,並保留所有現有條目。然後限制所有權和權限:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
建立根 SSH 目錄後,開啟終端編輯器並存取 root 使用者的 authorized_keys 檔案。
將完整的公鑰作為一行新增至 root 使用者的 authorized_keys 檔案中;此處顯示的縮寫金鑰只是一個視覺佔位符。

3. 設定 root 登入策略

使用編輯器開啟伺服器設定文件,例如:

sudoedit /etc/ssh/sshd_config

找到當前已啟動的PermitRootLogin指令並將其變更為:

PermitRootLogin prohibit-password

這比PermitRootLogin yes允許使用 root 密碼更安全。請勿新增重複指令:OpenSSH 會使用其取得的第一個值,且發行版可能會載入Include檔案。請編輯目前設置,並保持無關的身份驗證選項不變。

OpenSSH 伺服器設定顯示 PermitRootLogin 設定為 prohibit-password
高亮顯示的行控制根目錄;顯示的其他身份驗證選項是單獨的設置,應與您的策略相符。

4. 應用配置前請先驗證配置。

首先檢查語法錯誤:

sudo sshd -t

沒有輸出表示語法檢查通過。請在重新載入之前修復所有報告的錯誤。使用以下命令檢查有效值:

sudo sshd -T | grep permitrootlogin

確認輸出結果是否正確permitrootlogin prohibit-password。如果不是,請檢查包含的文件和適用的Match資料塊。 sshd手冊將其定義-t為語法檢查和-T有效配置報告。

終端運行 sshd 配置驗證並列印有效的 PermitRootLogin 值
在應用變更之前執行 sshd -t,然後檢查有效的 root 登入設定。

5. 重新載入 SSH 服務

使用您發行版的服務名稱。 Ubuntu 和 Debian 通常使用:

sudo systemctl reload ssh.service

Fedora、RHEL 和許多其他發行版通常使用:

sudo systemctl reload sshd.service

如果不支援重新加載,請使用systemctl restart匹配的服務名稱並保持原始會話開啟。 Ubuntu 的OpenSSH 指南也建議sshd -t在重新啟動前執行此命令。

在 Ubuntu 或 Debian 系統上,Linux 終端機正在重新載入 OpenSSH 服務。
配置通過語法檢查後,重新載入 SSH 守護程式;服務名稱因發行版而異。

6. 從第二個終端測試 root 存取權限

在客戶端開啟一個單獨的終端,並指定與您安裝的公鑰相符的私鑰:

ssh -i ~/.ssh/id_ed25519 root@server.example.com

替換密鑰路徑和主機名稱。驗證是否有主機金鑰提示,並確認會話以 root 使用者身分開啟。如果測試失敗,請從原始會話進行故障排除,並保持該會話開啟直至恢復存取權限。

第二個終端機成功與 root 帳戶建立了 SSH 會話。
在關閉管理員會話之前,使用匹配的私鑰從新的客戶端終端進行測試。

排除 root 使用者登入被拒絕的問題

請Permission denied (publickey)確認完整的公鑰已存在,/root/.ssh/authorized_keys且用戶端正在使用與其相符的私鑰。請重新檢查所有權和權限:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

同時檢查生效PermitRootLogin值、AllowUsers/DenyUsers規則、伺服器日誌以及 root 使用者的登入 shell。避免將此設定更改為yes快捷方式;這可能會擴展 root 使用者允許的身份驗證方法。

Linux 終端機正在修正 root SSH 金鑰檔案的所有權和限制性權限
root 使用者的 SSH 目錄應歸 root 所有,目錄權限為 700,authorized_keys 權限為 600。

當您不再需要 root SSH 登入時,請停用它。

若要關閉直接的 root 使用者 SSH 訪問,請將 active 指令變更為:

PermitRootLogin no

運行sudo sshd -t並重新載入正確的服務。這會阻止 root 使用者直接透過 SSH 登錄,同時保持管理員帳戶可用。僅使用密碼鎖定可能無法停用 root 使用者的公鑰登入。

OpenSSH 伺服器設定中,PermitRootLogin 設定為 no,然後執行驗證和服務重新載入指令。
將 PermitRootLogin 設定為 no,驗證並重新載入。其他顯示的身份驗證選項是獨立的,對於此僅限 root 使用者存取的變更並非必要。

詳情請參閱OpenSSH 設定手冊和 Ubuntu Server SSH 文件。

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。