ssh伪终端特殊字符问题

ssh伪终端特殊字符问题

所以我有以下情况:我有一个主机在ssh -t与 tmux 结合使用时表现出意外的行为。

如果我调用ssh -t my-problem-host tmux非 ascii 字符(例如)将显示为_。如果我在不调用 tmux 的情况下连接,就没有问题。

比如ssh -t my-problem-host bash后面手动输入tmux就可以了,而whilessh -t my-problem-host bash tmux就不行了。

tmux 之外的其他奇怪行为:如果我使用ssh -t my-problem-host vim并输入特殊字符,我会得到特殊字符和空格。如果我使用ssh -t my-problem-host mc并键入特殊字符,我会收到两个问题??

我也仅在单个主机上遇到此问题,并且想知道导致此问题的原因以及如何解决此问题。本质上ssh -t似乎引起了问题,主机似乎有一个奇怪的伪终端。

答案1

修复方法是编辑/etc/default/locale.它包含LANG=C.我把它改为LANG=en_US.UTF-8.

如果我在不使用 ssh 的情况下使用 ssh -t,则为 bash 设置 LANG,但-t对于其他程序(例如 tmux 或 vim),使用 LANG 时将设置为 C。

相关内容