|
|
#!/bin/bash
|
|
|
|
|
|
# Mot de passe par défaut
|
|
|
|
|
|
export SSHPASS='iut*'
|
|
|
pass=''
|
|
|
|
|
|
# Demande et affiche un mot de passe
|
|
|
|
|
|
getPassword() {
|
|
|
local pass1 pass2
|
|
|
local cont=1
|
|
|
|
|
|
while [ $cont = 1 ];do
|
|
|
|
|
|
echo -n "Mot de passe : " >&2
|
|
|
|
|
|
# -s : lecture sans affichage
|
|
|
read -s pass1
|
|
|
|
|
|
echo >&2
|
|
|
|
|
|
echo -n "Retapez le mot de passe : " >&2
|
|
|
|
|
|
read -s pass2
|
|
|
|
|
|
echo >&2
|
|
|
|
|
|
if [ -n "$pass1" -a "$pass1" = "$pass2" ]; then
|
|
|
cont=0
|
|
|
else
|
|
|
if [ "$pass1" != "$pass2" ]; then
|
|
|
echo "Les mots de passe ne correspondent pas." >&2
|
|
|
else
|
|
|
echo "Un mot de passe vide n'est pas valide !" >&2
|
|
|
fi
|
|
|
fi
|
|
|
done
|
|
|
|
|
|
echo "$pass1"
|
|
|
}
|
|
|
|
|
|
|
|
|
# main
|
|
|
|
|
|
if [ ! -r ~/.ssh/id_rsa.pub ]; then
|
|
|
echo "~/.ssh/id_rsa.pub manquant !" >&2
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
if [ -z "$pass" ]; then
|
|
|
echo "Entrez un mot de passe pour les utilisateurs root et test"
|
|
|
echo "N'oubliez pas ce mot de passe sous peine de tout perdre !"
|
|
|
echo "ATTENTION : Les caractères ', \" et tabulation ne sont pas autorisés ! :"
|
|
|
pass=$(getPassword)
|
|
|
fi
|
|
|
|
|
|
# Copie de la clé ssh publique dans ~root/.ssh/authorized_keys
|
|
|
# de la machine virtuelle
|
|
|
sshpass -e ~vdn/vdn/bin/vdn-ssh-copy-id -i ~/.ssh/id_rsa.pub root@debian-1 &> /dev/null
|
|
|
|
|
|
# idem pour l'utilisateur test
|
|
|
sshpass -e ~vdn/vdn/bin/vdn-ssh-copy-id -i ~/.ssh/id_rsa.pub test@debian-1 &> /dev/null
|
|
|
|
|
|
vdn-ssh root@debian-1 'echo "root:'$pass'" | chpasswd'
|
|
|
vdn-ssh root@debian-1 'echo "test:'$pass'" | chpasswd'
|
|
|
|
|
|
# Vérification
|
|
|
|
|
|
SSHPASS="$pass"
|
|
|
if ! sshpass -e vdn-ssh -n -o PubkeyAuthentication=no root@debian-1 ':'; then
|
|
|
echo "Echec !" >&2
|
|
|
fi
|
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
|
# Copie de la clé ssh publique dans ~test/.ssh/authorized_keys
|
|
|
# de la machine virtuelle
|
|
|
|
|
|
vdn-ssh-copy -i ~/.ssh/id_rsa.pub test@debian-1
|
|
|
|
|
|
# Choix d'un nouveau mot de passe pour le compte root
|
|
|
|
|
|
echo "Entrez un nouveau mot
|
|
|
|
|
|
|
|
|
|
|
|
|