通過 root ftp 重新配置登錄(失去 ssh 訪問)
我的問題是雙重的。我需要以某種方式在我目前只有 root ftp 訪問權限的設備中重新啟用 telnet 和/或 ssh。另外,如果我要解決這個問題,請告訴我。詳情請關注…
背景
我有一個執行 2.6 核心的 Arm Linux 的特殊開發板。(該設備是 9G45,但這與我的問題並不真正相關。)我很高興地到處亂搞設置等,我不知何故導致 sshd 停止工作。
重新啟動後,ssh 連接被拒絕。
故障排除
我發現 Lighttpd 正在工作並提供頁面。這證實了網路和一些初始化工作。
我發現 vsftpd 正在執行**,並且我在這裡確實有 root 訪問權限**。
我可以連接到 telnet,但記錄在案的名為“guest”的預設使用者不起作用。根也不是。
使用 ftp,我確定 sshd pid 文件不存在,所以我假設它沒有執行。
不幸的是,通過串列連接似乎不起作用,但我有製造商的支持票,所以也許他們會回答我。
可能的解決方案(需要改進)
我認為我可以通過 root ftp 訪問、使用 init 腳本或其他東西進入,然後可能獲得 telnet 訪問權限(或者可能將 sshd 設置為稍後在啟動過程中執行)。
我不確定從這裡去哪裡。如果有人可以基於我可能的解決方案或提出新的解決方案,將不勝感激。
修復文件
當您僅限
ftp
於在系統上訪問時,您唯一真正的選擇是將文件獲取/放置到設備上。但事實證明,這通常是您“闖入”系統所需的全部內容。您將要採取的方法是將文件拉到本地系統,編輯此文件,然後將其放回原處。/etc/passwd & /etc/shadow
您要開始使用的文件是
/etc/passwd
和/etc/shadow
文件。如果你抓住這些,你可以確保使用者/名稱密碼都在那裡設置。一個重要的提示是,由於您知道 root 的密碼,您可以將該使用者的密碼字元串複製
/etc/shadow
到任何其他相應的使用者,這樣您現在也知道該使用者的密碼(它將與 root 使用的密碼相同)。ssh 訪問
除了賬戶之外,同樣的方法也可以用來開始
sshd
工作。的配置文件sshd
通常在此目錄中,/etc/ssh/sshd_config
. 您需要確保該文件處於可用狀態,以便sshd
守護程序能夠啟動並允許您登錄。**注意:**通常情況下root
不允許使用者ssh
進入系統,因此您可能需要暫時允許這樣做,只是為了獲得ssh
對系統的訪問權限。之後您可以將其關閉。sshd 服務
您還需要確保
sshd
服務在系統啟動時啟動。這個有點棘手。鑑於您使用的是 Linux 2.6,我將假設您的系統正在使用/etc/init.d
假設在您的系統上執行的各種服務。/etc/init.d
您可以在下面創建文件的連結,以便在/etc/rc3.d
系統sshd
重新啟動時啟動服務。像這樣的東西:$ ls -l /etc/rc3.d/ |grep ssh lrwxrwxrwx 1 root root 14 Aug 10 2011 S55sshd -> ../init.d/sshd
啟動服務
啟動此服務有點棘手,您要麼必須重新啟動(有風險,因為您可能會失去
ftp
訪問權限),或者如果系統有cron
或at
正在執行的服務,您可以向其中任何一個添加任務,以在特定位置啟動服務時間點,比如從現在開始的 1 分鐘。其他一切
恢復訪問後,您
sshd
可以從該 shell 修復 telnet 和其他任何內容,因此我不會進一步討論這些,因為它們超出了通過ssh
工作恢復訪問的分數。