El shell SSH iniciado con "expect" no tiene el ancho completo. ¿Cómo puedo solucionarlo?

El shell SSH iniciado con "expect" no tiene el ancho completo. ¿Cómo puedo solucionarlo?

Estoy usando expect para iniciar sesión automáticamente en SSH desde un iniciador de Unity, el comando se parece a esto:

gnome-terminal -t SSH1 -e "expect -c 'spawn ssh [email protected] ; expect assword ; send \\"password123\\n\\" ; interact'"

Eso funciona bien para iniciar sesión automáticamente, pero si maximizo la ventana de gnome-terminal, el contenido del shell ssh permanece más pequeño como si la ventana tuviera el tamaño predeterminado, así:

captura de pantalla

Al principio pensé que era porque gnome-terminal se estaba iniciando con el tamaño predeterminado y cuando estaba maximizado, por alguna razón, el material ssh no cambiaba de tamaño, pero luego agregué gnome-terminal --window --maximizeel comando y el mismo problema persiste, la ventana comienza maximizada. pero el texto del shell ssh sigue teniendo el tamaño del terminal predeterminado.

Además, si abro una terminal y escribo ese comando en la parte superior, tengo el mismo problema que si lo inicio desde el iniciador de Unity.

¿Alguna idea de qué podría causar esto y cómo solucionarlo?

Respuesta1

Utilice lo siguiente en la parte superior de su script esperado:

#trap sigwinch and pass it to the child we spawned
trap {
 set rows [stty rows]
 set cols [stty columns]
 stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

Respuesta2

una mejor manera de obtener el efecto que desea es usar claves ssh comoenzotibsugirió.

Primero

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa

presione Intro en cada mensaje y deje los campos en blanco para crear una clave predeterminada sin contraseña. Esto es lo que quieres.

Luego envíe la clave pública al servidor.

$ ssh-copy-id [email protected]

Finalmente crea un lanzador con el comando:

gnome-terminal -t SSH1 -x ssh [email protected]

Respuesta3

Esto tiene que ver con la variable de entorno que Expect usa para la configuración de su terminal.

Esto se puede solucionar fácilmente agregando la siguiente línea al comienzo de su script Expect:

set ::env(TERM) vt100

Descubrí que si tienes algún personaje coloreado. Si quieres ver personajes coloreados, también puedes probar:

set ::env(TERM) xterm

Respuesta4

Añade esto a tu código:

trap {
    set XZ [stty rows   ]
    set YZ [stty columns]
    stty rows $XZ columns $YZ < $spawn_out(slave,name)
} WINCH

Esto parece funcionar para mí en Ubuntu 17.10

información relacionada