Ssh

無法以 root 身份使用 ssh 登錄

  • April 1, 2021

我正在嘗試虛擬化舊的 linux 伺服器,而 PtoV 軟體需要通過 ssh 以 root 身份登錄密碼。但是,root 登錄被阻止,客戶端出現“ Permission Denied ”錯誤,伺服器端出現“ Failed Password for root ”(當 sshd 以調試模式執行時)。

我已經設置好PermitRootLogin yes/etc/ssh/sshd_config

這是一個舊的 RedHat 7.3 伺服器,多年前執行了像 Bastille 這樣的加固腳本,並且有許多舊作業系統的殘餘(如 ipchains - 不再受核心支持)。總而言之,我幾乎不知道原始系統發生了什麼變化,但有很多。

  • 我可以從控制台以 root 身份正常登錄
  • 我可以從控制台或 ssh 會話中 su
  • 作為普通使用者,我可以很好地 ssh。

我的問題是:還有什麼可以阻止我在此伺服器上的 root 登錄?

更多資訊:/etc/pam.d/sshd

auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    required     pam_limits.so
session    optional     pam_console.so

/etc/pam.d/system-auth

auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        required      /lib/security/pam_deny.so
account     required      /lib/security/pam_unix.so
password    required      /lib/security/pam_cracklib.so retry=3 type=
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 shadow
password    required      /lib/security/pam_deny.so
session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so

誰能告訴我雜湊算法是否是罪魁禍首?請記住,我可以以非特權使用者身份登錄。

原來 /etc/init.d/sshd 腳本沒有 $OPTIONS 變數,這將是對配置文件的引用。因此 sshd 啟動時根本沒有任何配置文件,因此預設為“PermitRoodLogin no”。

我通過在 /etc/init.d/sshd 的開頭附近添加以下行來解決此問題:

OPTIONS="-f /etc/ssh/sshd_config"

希望這對其他人有幫助。

可以在 PAM 配置中禁用通過 ssh 以 root 身份登錄。

引用自:https://serverfault.com/questions/192554