![¿Por qué no puedo ejecutar un comando SSH en un host remoto?](https://rvso.com/image/83688/%C2%BFPor%20qu%C3%A9%20no%20puedo%20ejecutar%20un%20comando%20SSH%20en%20un%20host%20remoto%3F.png)
Estoy accediendo a un host remoto a través de un jumpbox. Puedo acceder fácilmente al host remoto si accedo a él a través de un shell ssh:
ssh remoteHost
Last login: Tue Feb 16 12:56:26 2016 from xx.xxx.xx.xx
remoteHost:user:~$ ls
<shows all the stuff>
pero cuando intento ejecutar un comando a través de la opción de línea de comando SSH, siempre obtengo:
ssh remoteHost ls
"ls" isn't allowed to be executed.
Killed by signal 1.
Puedo ejecutar con éxito el comando ssh enalgunoanfitriones, pero no otros.
¿Es esta una configuración que se puede configurar en el servidor, es decir, "permitir comandos ssh remotos" o algo similar?
FWIW, eché un vistazo a¿Cómo habilitar el uso de comandos en un host remoto usando ssh sin contraseña?, pero estoy bastante seguro de que mi problema no está relacionado con las citas, como parece indicar la única respuesta a esa pregunta.
Actualizar:
En el host remoto, tengo un archivo autorizado_keys2 que contiene algo como esto:
ssh-rsa <encrypted stuff> jumpbox_user@jumpbox
ssh-rsa <encrypted stuff> jumpbox_user@mydesktop
Mi archivo ssh/.config se ve así:
Host remoteHost
HostName remoteHost
User user
ProxyCommand ssh -W %h:%p jumpbox_user@jumpbox_host
ServerAliveInterval 60
Respuesta1
Intente ejecutar su línea ssh con la -t
opción y asegúrese de que su comando remoto esté delimitado por ' ya que eso le indica a ssh que ejecute el comando en el host remoto, lo que hace que su línea sea mucho más a prueba de errores.
ssh user@remoteHost -t 'ls'
Para su información: la opción -t habilita la asignación de pseudo-terminal que en realidad simula abrir una terminal SSH, luego escribir el comando, luego generar STDOUT y salir, que es exactamente lo que hizo manualmente como mencionó.
Según la página de manual de SSH:
-t Forzar la asignación de pseudoterminales. Esto se puede utilizar para ejecutar programas arbitrarios basados en pantalla en una máquina remota, lo que puede resultar muy útil, por ejemplo, al implementar servicios de menú. Múltiples opciones -t fuerzan la asignación de tty, incluso si ssh no tiene tty local.
Referencias: