11 diciembre 2015

Ejecución directa de “comandos stream” via SSH

Con comandos stream me refiero a comandos que muestran información dinámica por pantalla, como cualquier aplicación de monitorización como htop o apachetop. Estos comandos, al ejecutarlos directamente a través de OpenSSH contra un servidor remoto devuelven el siguiente error:
 
vampii@gostir:[~]$ ssh vampii@host htop
Error opening terminal: unknown.
 
Esto ocurre con cualquier comando que no muestre directamente información por pantalla y luego termine. Curioseando en la documentación de OpenSSH me topé con la opción -t:
Force pseudo-tty allocation. This can be used to execute arbitrary 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.
Es decir, que simula un terminal permitiendo mostrar en el terminal local la salida dinámica del comando remoto. El comando a ejecutar quedaría:

vampii@gostir:[~]$ ssh -t vampii@host htop
 
Es una tontería que resulta de lo más útil, y lo mejor es que no requiere de ningún ajuste en la configuración del servidor SSH.

Tomado de: http://davidmartinez.net/archivos/software/ejecucion-directa-de-comandos-stream-via-ssh.php