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í:
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 --maximize
el 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