2

SSH 连接通过 Plink (PuTTY) 从 Windows 机器打开到 solaris 服务器,通过:

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

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

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

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

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

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

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

Plink.exeSSH 客户端 ( ) 或服务器端(Solaris、OpenSSH、Bash)是否有 256 个字符的限制?

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

4

1 回答 1

0

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

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

于 2011-03-31T16:41:58.280 回答