J'utilise s'attendre à une connexion automatique sur SSH à partir d'un lanceur Unity, la commande ressemble à ceci:
gnome-terminal -t SSH1 -e "expect -c 'spawn ssh [email protected] ; expect assword ; send \\"password123\\n\\" ; interact'"
Cela fonctionne bien pour une connexion automatique, mais si j'agrandis la fenêtre de gnome-terminal, le contenu de ssh Shell reste plus petit, comme si la fenêtre avait la taille par défaut, comme ceci:
Au début, je pensais que c’était parce que le gnome-terminal était lancé avec la taille par défaut et qu’il était agrandi pour une raison quelconque, le contenu ssh n’était pas redimensionné, mais j’ai ajouté gnome-terminal --window --maximize
à la commande et le même problème subsiste , la fenêtre commence à être agrandie mais le texte ssh Shell a toujours la taille du terminal par défaut.
De plus, si je viens d'ouvrir un terminal et de taper cette commande en haut, j'ai le même problème que si je la démarrais à partir du lanceur Unity.
Des idées sur ce qui pourrait causer ceci et comment le réparer?
un meilleur moyen d’obtenir l’effet souhaité est d’utiliser les clés ssh telles que enzotib suggéré.
Première
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
appuyez sur Entrée à chaque invite en laissant les champs vides pour créer une clé par défaut sans mot de passe. Voici ce que tu veux.
Suivant Poussez la clé publique sur le serveur.
$ ssh-copy-id [email protected]
Enfin, créez un lanceur avec la commande:
gnome-terminal -t SSH1 -x ssh [email protected]
Utilisez ce qui suit en haut de votre script expect:
#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
Cela concerne la variable d'environnement utilisée par Expect pour les paramètres de votre terminal.
Cela peut facilement être corrigé en ajoutant la ligne suivante au début de votre script Expect:
set ::env(TERM) vt100
J'ai trouvé que si vous avez des personnages colorisés. Si vous voulez voir des caractères colorisés, vous pouvez aussi essayer:
set ::env(TERM) xterm
Ajoutez ceci à votre code:
trap {
set XZ [stty rows ]
set YZ [stty columns]
stty rows $XZ columns $YZ < $spawn_out(slave,name)
} WINCH
Cela semble fonctionner pour moi sur Ubuntu 17.10