Linux

無法通過 shell SSH 進入 NAS:“錯誤:openpty:無效參數”

  • May 20, 2016

我這裡有一個 WD MyBook WorldEdition II(白光)NAS。這本質上是連接了ARM926EJ-S兩個 SATA 驅動器。很長一段時間,我都在上面執行 Debian 6.0 Squeeze。現在,我最近更新到 Debian 7.0 Wheezy,並在升級過程中使用了一個自定義步驟,我將在下面進行描述。

不幸的是,系統必須在核心版本 2.6.24 上執行。這是因為 WD 對核心做了一些更新檔,並且有一段時間沒有更新它。我(目前)無法將這些更新檔應用到較新的核心版本。結果,我無法libcapt-get dist-upgrade. libcWheezy 的最低核心要求為 2.6.26 。但是,我交叉編譯了libcwrt 核心 2.6.24。這在某個論壇上做廣告並聲稱有效。最終手動升級後libcapt-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.

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