lisz-works

プログラミングと興味を貴方に

GhosttyでSSH→tmuxがmissing or unsuitable terminal: xterm-ghosttyで落ちる問題の解決

【スポンサーリンク】

Linuxペンギン

こんにちは、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を編集します。

AcceptEnvTERMを追加します。もともと値が設定されている場合は、その設定の後ろに追記します。

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色の基本的な色のみしかサポートしていないのが原因だったようです。

このため、様々な色に設定していたものが無きものとなっていたようでした。