Gibt es eine Möglichkeit, in .ssh/config
einem Befehl Folgendes anzugeben :
ssh -t remote-host "screen -dR screen_name"
so kann ich einfach mit auf die Remote- screen
Sitzung zugreifen ssh remote-host
?
Im Moment habe ich dieses Problem mit einem benutzerdefinierten Skript gelöst:
$ cat ~/bin/sssh
#!/bin/sh
/usr/bin/ssh -t $1 "screen -dR ab"
~/bin
bleibt an erster Stelle $PATH
, aber es ist unflexibel und hässlich.
Außerdem möchte ich einen Weg finden, um die automatische Vervollständigung des Hosts für mein benutzerdefiniertes Skript zu implementieren.
$1
mit$@
. Dann können Sie weitere Optionen hinzufügen, nicht nur den Hostnamen. Versuchen Sie zum Abschluss die Ausführung. /usr/share/bash-completion/completions/ssh
, gefolgt voncomplete -F _ssh sssh
Antworten:
Um das tty wie bei der
-t
Option zuzuweisen, geben Sie esRequestTTY force
als Eintrag in die ssh-Konfigurationsdatei ein (normalerweise in~/.ssh/config
). Um immer einen Befehl auf dem Server auszuführen, nachdem Sie eine Verbindung hergestellt haben, geben SieRemoteCommand COMMAND
den Eintrag ein, in demCOMMAND
sich der Befehl befindet, den Sie bei der Verbindung ausführen möchten. Weitere Optionen finden Sie unterman ssh_config
.quelle
Nutze die Macht, Luke!
RequestTTY force
in Ihrem~/.ssh/config
für den gewünschten Gastgeber.quelle
Ich würde argumentieren, dass dies der flexibelste Weg ist. Mit einem Skript können Sie Parameter einrichten, Bedingungen hinzufügen und den Befehl nach Bedarf ändern, alles basierend auf den Eingaben.
Es gibt Möglichkeiten, den Befehl zu "erzwingen"
authorized_keys
. Ich kenne jedoch keine Möglichkeit, die Zuweisung von tty zu erzwingen, außer über die Befehlszeile oder einen Befehl auf dem Remote-Server aus den lokalen Konfigurationsdateien zu erzwingen.Ich selbst habe ein Skript, das die Konfigurationsdatei scannt, mit verschiedenen Domänen gegen DNS prüft und die Titelzeichenfolge des Terminalemulators festlegt. Ich rufe es vom Bildschirm auf meinem lokalen System ( Ctrl-a g) auf.
quelle
Hinweis:
RemoteCommand
Beginnt mit OpenSSH 7.6 zu arbeiten . In früheren Versionen (dh aktuellem Debian 9.9) funktioniert der SSH-Client nicht mehr ordnungsgemäß (zumindest mitgit pull
).quelle