![Warum kann ich auf einem Remote-Host keinen SSH-Befehl ausführen?](https://rvso.com/image/83688/Warum%20kann%20ich%20auf%20einem%20Remote-Host%20keinen%20SSH-Befehl%20ausf%C3%BChren%3F.png)
Ich greife über eine Jumpbox auf einen Remote-Host zu. Ich kann problemlos auf den Remote-Host zugreifen, wenn ich über eine SSH-Shell darauf zugreife:
ssh remoteHost
Last login: Tue Feb 16 12:56:26 2016 from xx.xxx.xx.xx
remoteHost:user:~$ ls
<shows all the stuff>
aber wenn ich versuche, einen Befehl über die SSH-Befehlszeilenoption auszuführen, erhalte ich immer:
ssh remoteHost ls
"ls" isn't allowed to be executed.
Killed by signal 1.
Ich kann den SSH-Befehl erfolgreich ausführen aufmancheGastgeber, aber nicht andere.
Handelt es sich hierbei um eine Einstellung, die auf dem Server konfiguriert werden kann, also „Remote-SSH-Befehle zulassen“ oder etwas Ähnliches?
FWIW, ich habe mir angesehenWie aktiviere ich die Verwendung von Befehlen auf einem Remote-Host mittels SSH ohne Kennwort?, aber ich bin ziemlich sicher, dass mein Problem nichts mit dem Zitieren zu tun hat, wie die einzige Antwort auf diese Frage zu zeigen scheint.
Aktualisieren:
Auf dem Remote-Host habe ich eine Datei authorized_keys2, die ungefähr Folgendes enthält:
ssh-rsa <encrypted stuff> jumpbox_user@jumpbox
ssh-rsa <encrypted stuff> jumpbox_user@mydesktop
Meine ssh/.config-Datei sieht folgendermaßen aus:
Host remoteHost
HostName remoteHost
User user
ProxyCommand ssh -W %h:%p jumpbox_user@jumpbox_host
ServerAliveInterval 60
Antwort1
Versuchen Sie, Ihre SSH-Zeile mit der -t
Option auszuführen, und stellen Sie sicher, dass Ihr Remote-Befehl durch ' getrennt ist, da dies SSH anweist, den Befehl auf dem Remote-Host auszuführen, wodurch Ihre Zeile wesentlich fehlersicherer wird.
ssh user@remoteHost -t 'ls'
Zu Ihrer Information: Die Option -t aktiviert die Pseudoterminalzuweisung, die tatsächlich das Öffnen eines SSH-Terminals, die Eingabe des Befehls, die Ausgabe von STDOUT und das Beenden simuliert – was genau das ist, was Sie wie erwähnt manuell getan haben.
Laut der SSH-Manpage:
-t Erzwingt die Pseudoterminal-Zuweisung. Dies kann verwendet werden, um beliebige bildschirmbasierte Programme auf einem Remote-Rechner auszuführen, was sehr nützlich sein kann, z. B. bei der Implementierung von Menüdiensten. Mehrere -t-Optionen erzwingen die TTY-Zuweisung, selbst wenn SSH kein lokales TTY hat.
Verweise: