Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/11/2009, à 12:52

Tomzz

Gestion simple de plusieurs connexions SSH

Bonjour,
[EDIT] Ajout de connexion nautilus le 14/11/2009
J'ai plusieurs machines a gérer via SSH (voir vnc pour certaines) et ça me saoulait de retaper à chaque fois les identifiants et adresses.
J'ai fait un petit script qui me permet de choisir la machine à laquelle je veux me connecter et qui lance la connexion automatiquement.
Petite précision j'utilise des certificats et j'ai interdit l'accès par mdp.
J'utilise Zenity pour les boites de dialogue.
Le script ci dessous vous demande les infos concernant le serveur et va créer un script de connexion qui permettra ensuite de simplement choisir le serveur auquel se connecter.
Pour ajouter un nouveau serveur il suffit de relancer le script ajout_client.sh, ça ne gère pas la suppression pour l'instant.

Le script est conçu pour être placé dans le répertoire /home/$USER/scripts.

Créer le répertoire:

mkdir /home/$USER/scripts

Y créer un ficher nommé ajout_client.sh et copier ce qui suit à l'intérieur:

#!/bin/bash
##
if [ -e /home/$USER/scripts/connections-ssh.sh ]; then
		{
			if [ -e /tmp/tmp_script_ssh ]; then
				{
					rm /tmp/tmp_script_ssh
				}
			fi
			if [ -e /tmp/tmp_script_ssh1 ]; then
				{
					rm /tmp/tmp_script_ssh1
				}
			fi			
			echo -n "#!/bin/bash">/tmp/tmp_script_ssh
			echo -n ")
## parametres">/tmp/tmp_script_ssh1
			perl -0777ne 'print for /#!\/bin\/bash(.*?)\)/sg' /home/$USER/scripts/connections-ssh.sh>>/tmp/tmp_script_ssh
			perl -0777ne 'print for /## parametres(.*?)## fin parametres/sg' /home/$USER/scripts/connections-ssh.sh>>/tmp/tmp_script_ssh1
		}
		else
		{
			echo -n "#!/bin/bash
##

choix=\$(zenity --list \\
  --title=\"Choisissez le client\" \\
  --radiolist \\
  --column=\" \" \\
  --column=\"Clients\" \\">/tmp/tmp_script_ssh
			echo -n ")
## parametres">/tmp/tmp_script_ssh1
		}	
		fi
		
nom="a"
cpt="0"
while [ ! -z $nom ]
	do				
		nomsed=$(zenity --entry --title="Nom du nouveau client" --text="Nom de votre nouveau client")
		nom=$(echo -n "${nomsed}" | sed 's/ /_/g')
		if [ ! -z $nom ]; then
		{
			if [ -e "/home/$USER/scripts/connections-ssh.sh" ]; then
			{
				echo -n " \\
  FALSE \"$nom\"">>/tmp/tmp_script_ssh
			}
			else
			{	
				if [ $cpt = "0" ]; then
				{
					echo -n "	
  TRUE \"$nom\"">>/tmp/tmp_script_ssh
					cpt="1"
				}
				else
				{
					echo -n " \\
  FALSE \"$nom\"">>/tmp/tmp_script_ssh
				}
				fi					
			}	
			fi
  		id=$(zenity --entry --title="Nom utilisateur" --text="Nom d'utilisateur de $nom")
		ip=$(zenity --entry --title="Adresse ou ndd" --text="IP ou NDD pour $nom")
		pr=$(zenity --entry --title="N° de port" --text="n° de port pour pour $nom")
		echo -n "
		if [ \$choix = \"$nom\" ]; then
		{ 
			nom=\"$id\"
			ipdns=\"$ip\"
			port=\"$pr\"
		}
		fi">>/tmp/tmp_script_ssh1
		}
		fi
	done
cat /tmp/tmp_script_ssh>/home/$USER/scripts/connections-ssh.sh
cat /tmp/tmp_script_ssh1>>/home/$USER/scripts/connections-ssh.sh
echo -n "
## fin parametres	
	
type=\$(zenity --list \\
  --title=\"Choisissez l'option\" \\
  --radiolist \\
  --column=\" \" \\
  --column=\"Clients\" \\
  TRUE \"Console\" \\
  FALSE \"VNC\" \\
  FALSE \"Nautilus\")

	if [ \$type = \"VNC\" ]; then
	{	 
		tsclient |
		( ssh -L 5901:localhost:5900 -XC \"\${nom}\"@\"\${ipdns}\" -p \"\${port}\" )
	}
	fi
	if [ \$type = \"Console\" ]; then
	{
		ssh \"\${nom}\"@\"\${ipdns}\" -p \"\${port}\"
	}
	fi
	if [ \$type = \"Nautilus\" ]; then
	{
		nautilus ssh://\"\${nom}\"@\"\${ipdns}\":\"\${port}\"
	}
	fi
exit 0">>/home/$USER/scripts/connections-ssh.sh
chmod 755 /home/$USER/scripts/connections-ssh.sh
exit 0

Le rendre exécutable:

chmod 755 /home/$USER/scripts/ajout_client.sh

Le lancer:

sh /home/$USER/scripts/ajout_client.sh

Renseigner tous les éléments, le script boucle, on peut ajouter autant de serveur que l'on veut, pour arrêter il suffit d'annuler lors de la première boite: "Nom de votre nouveau client"

Pour utiliser les connections lancer dans un terminal:

sh /home/$USER/scripts/connections-ssh.sh

Attention celui ci devra être exécuté dans un terminal faute de quoi vous ne pourrez pas couper la connexion

Pour ajouter de nouveaux serveurs relancez:

sh /home/$USER/scripts/ajout_client.sh

Dernière modification par Tomzz (Le 14/11/2009, à 18:08)

Hors ligne