SSHを介して特定のサーバーにログインすると(管理者権限がないため)、次のエラーが発生します:urxvt-unicode: Unknown terminal type
(端末タイプを永続的に変更したくありません)。ログインすると、端末のタイプに応じて色が変わるため、これは重要です。
SSH経由でログを記録するときに、ターミナルタイプを変更することはできますか?
リモートボックスへのrootアクセス権がある場合は、パッケージncurses-term
をインストールします。これにより、rxvt-256color
terminfoエントリが提供されます。
非rootユーザーとして、rxvt terminfoエントリーをリモートマシンの$HOME/.terminfo/r/
にコピーして、TERMINFO=$HOME/.terminfo
をエクスポートすることもできます。
ssh <Host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <Host>:~/.terminfo/r/
ログイン後、次のように実行できます。
export TERM=vt100
sshdプロセス(sshd(8)から)は...
6. Reads the file ~/.ssh/environment, if it exists, and users are
allowed to change their environment. See the PermitUserEnvironment
option in sshd_config(5).
そして
8. If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists,
runs it; otherwise runs xauth. The “rc” files are given the X11
authentication protocol and cookie in standard input. See SSHRC, below.
あなたは編集するかもしれません~/.ssh/rc
TERMの値を設定します。このファイルはシェルのプロファイルの前に読み込まれるためです。
通常、TERM
はローカル環境から変更されずにリモート環境に渡されます。 TERM
を呼び出すときにローカル側でssh
を設定すると、必要なことが実行されます。
たとえば、リモートエンドにrxvt
(ただしrxvt-unicode
ではない)のターミナル記述がある場合、ファンクションキーなどには十分に機能します。
BashまたはPOSIX準拠のシェルを想定すると、次のようにしてこれを行うことができます
TERM=rxvt ssh
remotehost
このようにすると、ローカル環境ではなく、ssh
コマンドにのみ影響します。 screen.xterm-new
の説明がない一般的なマシンを処理するためにこの機能を使用します。リモートマシンによっては、 フルターミナルデータベース にインストールできる適切なパッケージがある場合とない場合があります。一部(SolarisやFreeBSDなど)には回避策が必要です。
参考文献: