Forzar pseudo-terminal en la ejecución del comando ssh

Usted ya sabe cómo ejecutar un comando en un equipo remoto a través de ssh .

La sintaxis es la siguiente:

 
$ ssh [email protected]

Esto funcionará si el comando es simplemente Piping salida, por ejemplo, ls .

Si el comando es «basados ​​en pantallas» en la que interpreta la entrada del usuario, es posible que obtenga un error. A continuación se muestra lo que sucede cuando ssh para ejecutar este tipo de programas (por ejemplo, la parte superior , emacs , pantalla ).

 
$ ssh [email protected] superior
[email protected] 's password:.
variable de entorno TERM no establecer
 
$ ssh [email protected] emacs
[email protected] 's password:
emacs: entrada estándar no es un tty
 
Pantalla [email protected] $ ssh
contraseña [email protected] 's:.
Debe conectarse a un terminal

Aquí está un alto nivel explicación de lo que está sucediendo detrás de la escena.

Al ejecutar ssh sin un comando sólo para ingresar, una pseudo tty se asigna automáticamente. Pero si se especifica un comando para ejecutar en el ssh de línea de comandos, por defecto, ssh no no asignar una pseudo tty. Es necesario para que la fuerza de asignar uno si desea ejecutar comandos tales como superior o pantalla . Esto le hace al dar la -t parámetro a ssh .

 
$ ssh-t [email protected] superior
contraseña [email protected] 's:
top - 11:09:46 hasta 133 días, 13:44, 5 usuarios, promedio de carga: 0,00, 0,00, 0,00
Tareas: 201 total, el 1 de funcionamiento, 200 de dormir, 0 se detuvo, 0 zombie
: 0.0% nosotros, 0.2% sy, 0.0% de Ni , Identificación del 99,8%, 0,0% wa, 0.0% hi, 0.0% si, 0.0% st
Souvenirs: 1938896k total 1466144k de segunda mano, libre de 472752k, tampones 592508k
Intercambio: Total 0k, 0k utilizado, 0k libre, 508120k caché

PID USUARIO PR NI VIRT RES SHR S% CPU% HORA MEM + COMANDO
22176 peter 20 0 2856 1296 984 R 0.3 0.1 0:00.07 superior
1 root 20 0 3944 572 332 S 0.0 0.0 0:02.80 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.17 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:09.22 migración / 0
4 root 20 0 0 0 0 S 0.0 0.0 406:20.92 ksoftirqd / 0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.03 migración / 0

En resumen, si ejecuta ssh con un argumento de comando para ejecutar en un servidor remoto, y aparece un mensaje de error que indica un terminal no está configurado, ejecute de nuevo con el -t parámetro. google_ad_client = «pub-1640070864477148» –

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *