Socat 和丰富的终端(使用 Ctrl+C/Ctrl+Z/Ctrl+D 传播)

Socat 和丰富的终端(使用 Ctrl+C/Ctrl+Z/Ctrl+D 传播)

socat - exec:'bash -li',pty,stderr,ctty->bash: no job control in this shell

我应该使用什么选项来获得像使用 ssh/sshd 那样成熟的 shell?

我希望能够将 shell 连接到 socat 可以处理的所有内容(袜子 5、UDP、OpenSSL),而且还需要一个好的 shell,可以正确解释所有的键、各种Ctrl+ C/ Ctrl+ Z、制表符补全、向上/向下键(带有远程历史记录)。

  • 更新 1:找到“setsid”socat 选项。它修复了“无作业控制”问题。现在尝试修复Ctrl+ D

  • 更新 2:

    socat 文件:`tty`,raw,echo=0 exec:'bash -li',pty,stderr,setsid,sigint,sane
    。它不能很好地处理Ctrl+ D/ Ctrl+ Z/ Ctrl+ C,我可以在其中启动 Vim,远程历史记录也可以。

答案1

问题是:

  1. socat 右侧缺少“setsid”选项。这将导致 bash 无法成为会话的控制者。
  2. 在socat的左边使用“-”。正确的做法是`tty`,raw,echo=0。

现在我可以拥有一个 shell,可以控制 socat 支持的所有内容,并且可以启动 vim/screen/ssh,ping以 ^C 中断,cat以 ^D 结束,并在该 shell 中执行所有其他操作。

如果 bash 错误地断行和/或vim太小或太大,你可以使用术语大小轻松修复它。

相关内容