こんにちは、lisです!
最近Ubuntuで使用するターミナルをGhosttyメインに変更しました。
SSH接続をして作業……ということをよくします。
しかしSSH接続して、tmuxを起動しようとしたら「missing or unsuitable terminal: xterm-ghostty
」と出力されて、tmuxの起動が失敗してしまいました。
こちらの問題を解決していきます。
設定した原因の問題
他のPCにSSH接続して、tmuxを起動しようとしたら「missing or unsuitable terminal: xterm-ghostty
」と出力されて、tmuxの起動が失敗してしまいました。
解決方法
Ghosttyでは、環境変数 TERM
の値がxterm-ghostty
となっています。
どうやらこれが原因のようでした。
ということで、SSH接続元と接続先に設定して、SSH接続すれば解決しました。
SSH接続元の設定
~/.ssh/config
の接続設定へ下記のように設定を追加します。
Host target-host-name
...
SendEnv TERM
SetEnv TERM=xterm-256color
環境変数 TERM
の値を設定してあげる、といった内容です。
SSH接続先の設定
/etc/ssh/sshd_config
を編集します。
AcceptEnv
にTERM
を追加します。もともと値が設定されている場合は、その設定の後ろに追記します。
AcceptEnv TERM
# 元々 LANG LC_* が書かれていた場合
AcceptEnv LANG LC_* TERM
設定を変更後、SSHサービスを再起動。
sudo systemctl restart ssh
ただはじめに問題の起きたマシンではこの設定をしたのですが、他のマシンでも同様の問題が発生した際、この設定を行わなくても動作したので、もしかしたら不要かもしれません。
色問題
今回記載した内容でやれば発生しない内容となります。
元々この設定をした際、TERM
の値をxterm-256color
でなくxterm
にしていました。
Host target-host-name
...
SendEnv TERM
SetEnv TERM=xterm
この設定でSSH接続していたところ下記のようになってしまう問題がありました。 - プロンプトの色が緑→白 - tmuxのステータスバーがグレーから背景色と同じになっていた - nvimの行番号が背景色と同じになって見えない 気になっただけでこれだけあったので、もっと色々違っていたのでしょう。
どうやらxterm
は16色の基本的な色のみしかサポートしていないのが原因だったようです。
このため、様々な色に設定していたものが無きものとなっていたようでした。