无法通过 shell 通过 SSH 进入 NAS:“错误:openpty:参数无效”

无法通过 shell 通过 SSH 进入 NAS:“错误:openpty:参数无效”

我这里有一台 WD MyBook WorldEdition II (White Light) NAS。这实际上是一个ARM926EJ-S连接了两个 SATA 驱动器的 NAS。很长一段时间以来,我都在它上面运行 Debian 6.0 Squeeze。现在我最近更新到了 Debian 7.0 Wheezy,升级过程中有一个自定义步骤,我将在下文中介绍。

不幸的是,系统必须在内核版本 2.6.24 上运行。这是因为 WD 对内核做了一些修补,并且有一段时间没有更新了。我(目前)无法将这些修补程序应用于较新的内核版本。因此,我无法libc在 内更新apt-get dist-upgrade。Wheezylibc要求最低内核为 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

答案1

因此,我能够通过libc再次重新编译来解决这个问题。我猜想这一定是工具链中的问题,因为这次我使用了chroot特别设置为的wheezy

相关内容