Ich starte ein Remote-Skript/-Kommando direkt auf einem Ubuntu-Server mit dem folgenden Befehl:
ssh me@server 'nano my_file.txt'
Dies führt jedoch zu einem Fehler:
Error opening terminal: unknown.
Ein weiteres Beispiel: Der Aufruf eines Remote-Skripts, das den nano
obigen Befehl enthält, führt zum selben Fehler.
ssh me@server 'open_nano.sh'
Wenn ich das tue ssh me@server 'echo something'
, erhalte ich something
das erwartete Ergebnis.
Was ist falsch?
Antwort1
Sie müssten die -t
Flagge verwenden.
Beispiele:
ssh -t me@server 'nano my_file.txt'
ssh -t me@server 'open_nano.sh'
Erklärung von man ssh
:
-t Force pseudo-tty allocation. This can be used to execute arbi‐ trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.