18 novembre 2008
Copie par scp et connexion ssh sans mot de passe
Je dois réaliser un script qui effectue entre autres des copies de fichiers vers un autre serveur, mais je me vois mal le lancer manuellement et taper le mot de passe à chaque fois.
J'ai trouvé la solution sur ce site : Connexion à distance sécurisée.
L'idée est de générer une clé publique et de la partager avec le serveur avec lequel on veut communiquer. Ci-dessous les manips nécessaires :
[user@serveur1 ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/users/user1/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /users/user1/.ssh/id_dsa.
Your public key has been saved in /users/user1/.ssh/id_dsa.pub.
The key fingerprint is:
3c:**:a6:**:e0:**:5f:**:e7:**:25:**:b1:**:7f:** user@serveur1
[user@serveur1 ~]$ vi .ssh/id_dsa.pub
# éditer le fichier et copier la ligne entière dans le fichier /users/user/.ssh/authorized_keys du serveur2
[user@serveur1 ~]$ ssh serveur2
# pas besoin de mot de passe !!!
[user@serveur2 ~]$ logout
Connection to xx.xx.xx.xx closed.
#Je lance mon script qui fait de la copie de fichier :
#/usr/bin/scp /users/user/file.log user@serveur2:/users/user/file.log
[user@serveur1 ~]$ ./scriptCopieFichier.ksh
file.log 100% 37KB 37.3KB/s 00:00
Le fichier a été transféré sur le serveur 2 sans avoir eu besoin de taper le mot de passe.