[Tuto] Créer un tunnel SSH entre deux serveurs Debian

Certaines de vos configurations réseaux vont impliquer la connexion d’un de vos serveurs en SSH à un autre de vos serveurs afin de pouvoir, par exemple, faire un sauvegarder ou encore synchroniser des fichiers ou des données. Afin d’automatiser cette connexion, nous pouvons apprendre à ces deux serveurs à se reconnaître entre eux et ainsi à ne pas demander de mot de passe ni de login. Nous allons pour cela, mettre en place un tunnel SSH à l’aide d’une paire de clef publique / clef privée sur chacun des serveurs.

Nous aurons besoins pour cela de deux serveurs linux tournant sous Debian 6.0. Nous appellerons le premier serveur S1 et le second S2.

Etape 1 : Création de la paire de clef publique / privée

La clef publique est une chaîne de caractère unique à chaque serveur. Cette clef est toujours associée à une clef privée qui permet au serveur de vérifier la validité de celle publique. Ainsi, si vous partagez la clef publique, le serveur pourra alors vérifier son authenticité et donc permettre la connexion sans mot de passe. Pour se faire, connectez vous sur votre serveur S1 et créez le couple de clefs :

$ root@server1:~# ssh-keygen -t dsa -b 1024

Votre console va vous demander où enregistrer la pair de clef et une « passphrase », laissez la vide et appuyer simplement sur entrer à chaque fois, jusqu’à ce que le « fingerprint » apparaisse. Vos fichiers « /root/.ssh/id_rsa » (clef privée) et « /root/.ssh/id_rsa.pub » (clef publique) ont été créées ! Réeffectuer la même opération sur votre S2.

Etape 2 : Transfert de la clef publique

Maintenant, nous allons partager notre clef publique et ainsi apprendre à notre serveur à accepter les connexions sans mot de passe de notre autre serveur. Pour cela, rien de plus simple, une petite ligne de commande :

$ root@server1:~# ssh-copy-id -i ~/.ssh/id_dsa.pub root@server2

Il vous demandera le mot de passe root de votre serveur 2 pour la dernière fois ! Faites de même dans le sens inverse pour accepter les connections de S2 sur S1.

Etape 3 : Tests

On va maintenant pourvoir tester. Connectez-vous en root sur S1 puis, depuis S1, connectez vous en root sur S2 :

$ root@server1:~# ssh root@server2

S’il ne vous demande pas de mot de passe, c’est que tout marche ! Effectuez le même test dans l’autre sens pour vérifier que la manipulation est bien symétrique. Vous venez de créer un tunnel SSH entre vos deux serveurs et ainsi de vous affranchir de vos mots de passes.

 

1 commentaire

Laisser un commentaire