【问题标题】:Pseudo TTY line limited to 256 characters?伪 TTY 行限制为 256 个字符?
【发布时间】:2011-03-31 15:04:22
【问题描述】:

使用 Plink (PuTTY) 从 windows 机器到 solaris 服务器打开 SSH 连接:

Plink.exe -t <hostname> /bin/bash

然后将bash命令行写入Plink.exe的stdin,由远程/bin/bash进程解析并执行。

只要 bash 命令行不超过 256 个字符,它就可以工作。写入 256 个字符后,不再回显任何字符,而是为每个附加字符返回一个 BEEP(ASCII 代码 7)。

(使用/bin/bash而不是直接调用脚本可能看起来很奇怪,但这是一个更复杂场景的简化示例)

似乎只有在使用 -t 标志时才会出现 256 个字符的限制,但在 solaris 服务器上执行的命令需要 TTY。

Plink.exe 进程是从 windows 机器上的 JVM 启动的。

我尝试使用 PuTTY 会话配置加载 Plink.exe,同时关闭“本地行编辑”和“本地回显”,但行为相同。

是 SSH 客户端 (Plink.exe) 还是服务器端(Solaris、OpenSSH、Bash)限制为 256 个字符?

如何避免 256 个字符的限制?

【问题讨论】:

    标签: shell ssh tty beep plink


    【解决方案1】:

    在规范模式下输入到 TTY 是逐行读取的,很大的行可能不适合输入队列。通过将 TTY 设置为 raw 模式,可以直接读取每个字符,并且行可以大于输入队列。

    通过调用“stty raw”解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多