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

Vi.*_*Vi. 6 linux bash tty job-control

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

在使用 ssh/sshd 时,我应该使用哪些选项来获得完全成熟的 shell?

我希望能够将 shell 连接到 socat 可以处理的所有内容(SOCKS 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,远程历史记录是可以的。

Vi.*_*Vi. 5

问题是:

  1. socat 右侧缺少“setsid”选项。它会导致 bash 不是会话的控制器。
  2. 在 socat 的左侧使用“-”。正确的是`tty`,raw,echo=0。

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

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