#1 Le 21/03/2018, à 12:49
- tarkan99
[contourné] expect et ssh sans saisie de mot de passe
Hello,
je cherche, en vue de réaliser un script zenity, de lancer ssh -X avec saisie dans le formulaire du mot de passe.
J'ai trouvé expect qui peut m'aider.
Ce script fonctionne :
#!/usr/bin/expect -f
set password "le mot de passe"
set ipaddr "serveur distant"
set port 22
set timeout -1
spawn ssh $ipaddr -l COMPTE -p 22 -X thunar
match_max 100000
expect "*?assword*"
send -- "$password\r"
send -- "\r"
expect eof
La fenêtre thunar s'ouvre bien mais la console reste bloqué sur la saisie du mot de passe.
(obligé de quitter avec Ctrl C).
une idée pour ce petit soucis ?
Merci d'avance !
Dernière modification par tarkan99 (Le 21/03/2018, à 22:29)
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#2 Le 21/03/2018, à 14:00
- maxire
Re : [contourné] expect et ssh sans saisie de mot de passe
Salut,
Pourquoi utiliser expect alors que zenity permet l'affichage d'une boîte de dialogue de saisie de mot de passe?
Exemple extrait de l'aide Zenity:
Boîte de dialogue de saisie de mot de passe
L'option --password crée une boîte de dialogue de saisie de mot de passe.
Options de la boîte de dialogue de saisie de mot de passe :
--username
Afficher le champ Nom d'utilisateur.
Le script d'exemple suivant montre comment créer une boîte de dialogue de saisie de mot de passe :
#!/bin/shENTRY=`zenity --password --username`
case $? in
0)
echo "Nom d'utilisateur : `echo $ENTRY | cut -d'|' -f1`"
echo "Mot de passe : `echo $ENTRY | cut -d'|' -f2`"
;;
1)
echo "Arrêt de la connexion.";;
-1)
echo "Une erreur inattendue est survenue.";;
esac
Dernière modification par maxire (Le 21/03/2018, à 14:01)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#3 Le 21/03/2018, à 14:33
- MicP
Re : [contourné] expect et ssh sans saisie de mot de passe
Bonjour
Connexion au serveur ssh sans avoir à spécifier de mot de passe <=> identification par clef publique
1°/ Depuis chaque compte utilisateur qui voudrait se connecter au serveur SSH,
créer une clef publique et privée en utilisant la commande ssh-keygen mais sans spécifier de mot de passe.
ssh-keygen -t rsa
quand un mot de passe est demandé, appuyer sur Entrée.
2°/ Toujours depuis ce compte utilisateur, transmettre la clef publique au serveur ssh distant auquel tu veux te connecter :
ssh-copy-id -i ~/.ssh/id_rsa.pub compteUilisateurSurServeurSSHdistant@adresseIPouNomDuServeurSSHdistant
il faudra spécifier le mot de passe du compteUilisateurSurServeurSSHdistant
3°/ Se connecter par ssh depuis le compte qui a transmis sa clef publique => aucun mot de passe ne sera demandé par le serveur ssh
Chaque utilisateur qui a transmis sa clef publique pourra se connecter au serveur
en utilisant le compte et la machine depuis laquelle il a créé sa clef.
(en fait, si il a la clef privée correspondant à la clef publique que le serveur a reçu)
Dernière modification par MicP (Le 21/03/2018, à 14:47)
Hors ligne
#4 Le 21/03/2018, à 15:21
- tarkan99
Re : [contourné] expect et ssh sans saisie de mot de passe
@maxire
As-tu essayé via ton script de fournir le mot de passe saisi à ssh ?
Le problème se pose pour fournir à ssh le mot de passe. Zenity ou pas, sans expect, ce n'est pas possible.
@MicP : merci pour le conseil mais j'ai déjà regardé l'utilisation des clés publiques mais dans mon contexte, cela ne me convient pas.
(d'où mes recherches sur expect)
mais merci quand même !
Dernière modification par tarkan99 (Le 21/03/2018, à 19:20)
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#5 Le 21/03/2018, à 21:49
- LeoMajor
Re : [contourné] expect et ssh sans saisie de mot de passe
bonjour,
tu as aussi
sshpass - noninteractive ssh password provider
---
essayer avec
set timeout 120
ssh -X est médiocre question performance ; préférer ssh -t (mutt, mc, ... softs semi-graphique à base de ncurses ou equivalent)
essayer thunar tardivement, en attendant le retour
set prompt {toto\@machine:~\$}
expect -re "$prompt" { send "thunar\n" }
Hors ligne
#6 Le 21/03/2018, à 22:17
- tarkan99
Re : [contourné] expect et ssh sans saisie de mot de passe
@LeoMajor
nickel le sshpass !
je peux laisser tomber expect !
Concernant -X ou -t, -t fonctionne pour thunar et firefox et je vois une petite différence sur l'ouverture d'appli (dans un lan).
Je passe le sujet à contourné.
Merci !
voici mon script zenity (mon 1° soit dit en passant...) :
#!/bin/bash
#On crée le formulaire en stockant les valeurs de sortie dans $cfgpass :/
cfgpass=`zenity --forms \
--title="Runas" \
--text="Thunar" \
--add-entry="Nom de l'utilisateur" \
--add-password="Mot de passe" \
--separator="|"`
if [ "$?" -eq 1 ]; then
#On quitte le script
exit
fi
compte=$(echo "$cfgpass" | cut -d "|" -f1)
passe=$(echo "$cfgpass" | cut -d "|" -f2)
sshpass -p $passe ssh $compte@bell -t thunar
débutant en script, ce n'est pas forcement très propre (surtout la partie =$(echo ....)
Dernière modification par tarkan99 (Le 21/03/2018, à 22:40)
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#7 Le 22/03/2018, à 11:05
- maxire
Re : [contourné] expect et ssh sans saisie de mot de passe
Salut,
Je n'avais pas réellement répondu à la question car comme tu citais zenity, je ne comprenais pas bien l'utilisation de expect
Tu as aussi cette solution en utiiisant zenity password dialog qui malheureusement affiche une partie de texte anglais.
#!/bin/sh
ENTRY=`zenity --username --password --title="Accès SSH" `
case $? in
0)
username=`echo $ENTRY | cut -d'|' -f1`
password=`echo $ENTRY | cut -d'|' -f2`
sshpass -p "$password" ssh $username@localhost ls -l
;;
1)
echo "Arrêt de la connexion.";;
-1)
echo "Une erreur inattendue est survenue.";;
esac
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#8 Le 22/03/2018, à 14:21
- tarkan99
Re : [contourné] expect et ssh sans saisie de mot de passe
merci pour les conseils !
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#9 Le 23/03/2018, à 17:35
- tarkan99
Re : [contourné] expect et ssh sans saisie de mot de passe
Pour info, j'ai abandonné zenity pour Gambas, un poil plus puissant ;-)
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#10 Le 25/03/2018, à 18:18
- LeoMajor
Re : [contourné] expect et ssh sans saisie de mot de passe
salut,
variante whiptail, semi-graphique
user="toto"; server="server"; req=$(whiptail --title "ssh" --inputbox "" 7 50 "${user}@${server}" 3>&1 1>&2 2>&3) && rauth=$(whiptail --clear --title "Connection: ssh -4t $req -p22" --passwordbox "mot de passe ?" 7 60 3>&1 1>&2 2>&3) && cmd=$(whiptail --clear --title "Commandes: ssh -4t $req -p22" --radiolist "cmd" 7 60 5 "None" "" ON "mc" "" OFF "vfu" "" OFF "bastet" "" OFF "mutt" "" OFF 3>&1 1>&2 2>&3); echo -e "$req\t$cmd\t$rauth"
Hors ligne