Linux
無法通過 shell SSH 進入 NAS:“錯誤:openpty:無效參數”
我這裡有一個 WD MyBook WorldEdition II(白光)NAS。這本質上是連接了
ARM926EJ-S
兩個 SATA 驅動器。很長一段時間,我都在上面執行 Debian 6.0 Squeeze。現在,我最近更新到 Debian 7.0 Wheezy,並在升級過程中使用了一個自定義步驟,我將在下面進行描述。不幸的是,系統必須在核心版本 2.6.24 上執行。這是因為 WD 對核心做了一些更新檔,並且有一段時間沒有更新它。我(目前)無法將這些更新檔應用到較新的核心版本。結果,我無法
libc
在apt-get dist-upgrade
.libc
Wheezy 的最低核心要求為 2.6.26 。但是,我交叉編譯了libc
wrt 核心 2.6.24。這在某個論壇上做廣告並聲稱有效。最終手動升級後libc
,apt-get dist-upgrade
成功繼續。但是,重新啟動後,我無法通過 SSH 打開 shell。相反,我收到以下錯誤消息:
PTY allocation request failed on channel 0 [...] stdin: is not a tty
我可以執行命令。
在調查了更多之後,我發現其中
/var/log/auth.log
包含:sshd[4161]: error: openpty: Invalid argument sshd[4161]: error: session_pty_req: session 0 alloc failed
因為
openpty: Invalid argument
我只找到了很少的資訊,例如這個論壇文章,使用者最終重新安裝了 SSH 伺服器。更多資訊:
mount
顯示,/dev/pts
即已安裝。/dev/pts
然而是空的(我認為這是正常的,如果沒有人登錄)。- 降級
openssh-server
到擠壓版本沒有幫助。所以,現在我的知識已經走到了盡頭。有一種方法可以調試
Invalid argument
實際上傳遞給openpty
.
所以,我能夠通過再次重新編譯來解決這個問題
libc
。我認為它一定是工具鏈中的某些東西,因為我這次使用了一個chroot
特別設置為wheezy
.