web-dev-qa-db-ja.com

SSH経由でのログインに使用する端末タイプを変更できますか?

SSHを介して特定のサーバーにログインすると(管理者権限がないため)、次のエラーが発生します:urxvt-unicode: Unknown terminal type(端末タイプを永続的に変更したくありません)。ログインすると、端末のタイプに応じて色が変わるため、これは重要です。

SSH経由でログを記録するときに、ターミナルタイプを変更することはできますか?

8
syntagma

リモートボックスへの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/
7
Marco

ログイン後、次のように実行できます。

export TERM=vt100
4
Romeo Ninov

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の値を設定します。このファイルはシェルのプロファイルの前に読み込まれるためです。

2
Archemar

通常、TERMはローカル環境から変更されずにリモート環境に渡されます。 TERMを呼び出すときにローカル側でsshを設定すると、必要なことが実行されます。

たとえば、リモートエンドにrxvt(ただしrxvt-unicodeではない)のターミナル記述がある場合、ファンクションキーなどには十分に機能します。

BashまたはPOSIX準拠のシェルを想定すると、次のようにしてこれを行うことができます

TERM=rxvt sshremotehost

このようにすると、ローカル環境ではなく、sshコマンドにのみ影響します。 screen.xterm-new の説明がない一般的なマシンを処理するためにこの機能を使用します。リモートマシンによっては、 フルターミナルデータベース にインストールできる適切なパッケージがある場合とない場合があります。一部(SolarisやFreeBSDなど)には回避策が必要です。

参考文献:

1
Thomas Dickey