Kann ich den Terminaltyp ändern, der für die Anmeldung über SSH verwendet wird?

8

Wenn ich mich über SSH auf einem bestimmten Server anmelde (auf den ich keinen Administratorzugriff habe), wird folgende Fehlermeldung angezeigt: urxvt-unicode: Unknown terminal type(Ich möchte meinen Terminaltyp auch nicht dauerhaft ändern.) Dies ist wichtig, da ich je nach Terminaltyp beim Anmelden unterschiedliche Farben erhalte.

Ist es möglich, den Terminaltyp nur bei der Protokollierung über SSH zu ändern?

Syntagma
quelle

Antworten:

7

Wenn Sie Root-Zugriff auf die Remote-Box haben, installieren Sie das Paket ncurses-term. Dadurch wird der rxvt-256colorTerminfo-Eintrag bereitgestellt.

Als Nicht-Root-Benutzer können Sie auch die rxvt terminfo-Einträge $HOME/.terminfo/r/auf den Remotecomputer kopieren und exportieren TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
Marco
quelle
Ich habe nichts drin /usr/share/terminfo/.
Ondra Žižka
4

Nach dem Login können Sie Folgendes ausführen:

export TERM=vt100
Romeo Ninov
quelle
2

sshd Prozess (von sshd (8)) liest ...

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).

und

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.

Möglicherweise möchten Sie bearbeiten, ~/.ssh/rcum den Wert von TERM einzurichten , da diese Datei vor dem Shell-Profil gelesen wird.

Archemar
quelle
1

Wird normalerweise TERMunverändert von Ihrer lokalen Umgebung an die Remote-Umgebung übergeben. Wenn Sie TERMbeim Aufrufen auf der lokalen Seite festlegen ssh, wird das getan, was benötigt wird.

Wenn das Remote-Ende beispielsweise die Terminalbeschreibung für rxvt(aber nicht rxvt-unicode) hat, funktioniert dies gut genug für Funktionstasten usw.

Angenommen, Bash oder eine Shell, die POSIX-kompatibel ist, können Sie dies tun, indem Sie

TERM=rxvt ssh Remote-Host

Dies wirkt sich nur auf den sshBefehl aus, nicht auf Ihre lokale Umgebung. Ich benutze diese Funktion für die Handhabung typischer Maschinen, für die die Beschreibung nicht vorliegt screen.xterm-new. Abhängig vom Remote-Computer gibt es möglicherweise ein geeignetes Paket, das für die vollständige Terminaldatenbank installiert werden kann . Einige (wie Solaris und FreeBSD) erfordern die Problemumgehung.

Weiterführende Literatur:

Thomas Dickey
quelle