Ssh

在遠端機器上的 tmux 中,終端中的每個新行都縮進到先前顯示的行的末尾

  • December 31, 2021

更新:感謝@NotTheDr01ds 的評論解決了

原始問題

(最後我使用的機器的詳細資訊)

我使用以下方式連接到我的 Uni 的 VPN:

sudo /sbin/modprobe tun && sudo openconnect gucsasa1.cent.gla.ac.uk

我得到這個輸出:

POST https://gucsasa1.cent.gla.ac.uk/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 20
Connected as 172.20.183.165, using SSL, with DTLS in progress
Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(ECDHE-RSA)-(AES-256-GCM).
Unknown DTLS packet type 13, len 16

然後我執行以下命令通過 ssh 連接:

ssh -X mymachine

連接後,我在伺服器上的 .bashrc 會嘗試自動啟動 tmux(2.6 版):

# Launch tmux
if command -v tmux>/dev/null; then
   [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux new-session -A -s main
fi

但它會立即崩潰,讓我的終端顯示看起來像這樣(在這裡我輸入ls以顯示問題,但它發生在所有標準輸出中):

輸入“clear”然後輸入“ls”後

我也看不到我在終端中輸入的任何內容 - 即它不會更新顯示,直到我按命令輸入(輸入“盲”)。

在 ssh 中使用-Xand-Y標誌時,我對 GUI 程序沒有任何問題。這特定於 tmux 終端中的標準輸出渲染。

Google搜尋後,我發現打字reset帶來了“正常”的體驗,但也殺死了 tmux 伺服器。這是輸入的結果ls

輸入“reset”然後輸入“ls”後

一旦我嘗試啟動 tmux,它就會再次崩潰,我又回到了原來的問題。

當我使用相同的客戶端機器和相同的終端連接到其他伺服器(執行 Debian 10、Ubuntu 20.04、bash 和 tmux 2.8)時,我沒有這個問題。

有人對我如何解決此問題有任何想法嗎?我一直在Google搜尋一整天都沒有成功。

客戶端機器

  • 作業系統:lubuntu 20.04
  • 終端:st
  • 外殼:重擊
  • 在 tmux 會話中echo $TERM::st-256color
  • 外部 tmux 會話echo $TERM::screen-256color

伺服器機器

  • 作業系統:Ubuntu 18.04
  • 終端:gnome-終端
  • 外殼:重擊
  • 外部 tmux 會話echo $TERM::st-256color

我自己無法使用類似的配置重現這一點,但聽起來(並從評論中確認)主機上的 termcap 和$TERM( ) 可能不匹配。st-256color

我會嘗試幾件事:

  • 首先,看看不同的終端是否會出現同樣的問題。在這種情況下,gnome-terminal工作正常。
  • 嘗試不同的TERM設置,例如tmux-256colorscreen-256colorxterm-256color
  • (在這種情況下有效) export TERM=xterm-256color在連接到主機之前在客戶端上。 TERM=xterm256color ssh -X mymachine也應該工作。

引用自:https://unix.stackexchange.com/questions/683659