# check if identity is present
if [ ! -f "$HOME/.ssh/id_rsa.pub" ]
then
# The agent has no identities.
echo -e " + clef locale SSH \033[0;33mNON existante\e[0m";
tput smcup
echo
echo " + génération d'une clef SSH locale"
echo
ssh-keygen -N "" -f $HOME/.ssh/id_rsa
tput rmcup
echo -e " + clef locale SSH \033[1;92mGénérée\e[0m";
fi
# load ssh config
if [ ! -f "$HOME/.ssh/config" ]
then
mkdir -p $HOME/.ssh/
touch $HOME/.ssh/config
chmod 700 $HOME/.ssh/config
fi
# detect dev User
devUserDetected=$(awk "/^Host dev\$/{x=1}x&&/User/{print \$2;exit}" $HOME/.ssh/config)
if [ "$devUserDetected" = "" ]
then
terminal-save
echo
echo -e "Indiquez votre nom d'utilisateur ssh du serveur de dev (ssh://\033[1mUSER\033[0m@dev.cosavostra.com)"
#read devUserName
read -e -p "Nom d'utilisateur du serveur de dev ? " -i $(whoami) devUserName
terminal-restore
else
devUserName="$devUserDetected"
echo "Utilisation de la config ssh de $HOME/.ssh/config"
fi
# test ssh connexion
ssh -q -o StrictHostKeyChecking=no -o PasswordAuthentication=no -p $devPort $devUserName@$devHost exit
# compare last command result
if [ $? = "0" ]
then
tput rc;tput ed
echo -e " + Connexion ssh \e[1;92mValide\e[0m pour \e[1m$devUserName@$devHost\e[0m"
else
tput rc;tput ed
echo -e " - \033[1;31mErreur de connexion SSH\033[0m au serveur de DEV pour \e[1m$devUserName@$devHost\e[0m"
echo
echo -e "commande testée : "
echo -e "\033[0;37mssh -o PasswordAuthentication=no -p $devPort $devUserName@$devHost\e[0m"
ssh -o PasswordAuthentication=no -p $devPort $devUserName@$devHost exit
echo
echo -e "Executer la commande \"\e[2mssh-copy-id -p $devPort $devUserName@$devHost\e[0m\" ?"
read -p "Votre mot de passe du serveur SSH sera demandé (o/n) " reply;
case $reply in
o|O|y|Y )
ssh-copy-id -p $devPort $devUserName@$devHost
ssh -q -o StrictHostKeyChecking=no -o PasswordAuthentication=no -p $devPort $devUserName@$devHost exit
if [ $? = "0" ]
then
tput rc;tput ed
echo -e " + Connexion ssh \e[1;92mValide\e[0m pour \e[1m$devUserName@$devHost\e[0m"
else
tput rc;tput ed
echo -e " - \033[1;31mErreur de connexion SSH\033[0m au serveur de DEV pour \e[1m$devUserName@$devHost\e[0m"
echo
echo "En cas de problème, contactez un administrateur"
echo
exit 1
fi
;;
*)
echo "Connexion SSH non valide"
exit 1
;;
esac
fi
# auto config SSH for later use
if [ "$devUserDetected" = "" ];then
{
echo "Host dev"
echo " HostName $devHost"
echo " User $devUserName"
echo " Port $devPort"
echo
} >> $HOME/.ssh/config
echo -e " + Connexion ssh \e[1;92mdéfinie\e[0m, vous pouvez executer '\e[3mssh dev\e[0m' pour vos connecter au serveur"
fi