SSH sans mot de passe
Bonjour à tous.
Je suis sous Mandriva 2007, et j'ai un programme spéciale qui doit exécuter un srcipt sur un serveur à distance. Le programme utilise ssh pour réaliser la chose. Le code de la connexion pour l'exéciton du script est coder en php de la façon suivante :
$command="ssh " . REMOTE_USERNAME . "@" . $subject_hostname[$i] . " \"" . GRAPH_SCRIPT . " -r --protocols=" . $graph_type_value . " --label=" . $subject_value . " --parameters_id=1";
En gros pour exécuter le script à distance, si je comprends bien, le programme tente de faire un :
ssh login@mon_adresse:/le/chemin/du/script -r blabla --label=blablabla --parameters_id=1
J'ai essayé d'exécuter cette commande. Elle ne marche pas. D'une part il me demande un mot de passe, d'autre part il n'arrive pas à exécuter ce script...Je tiens à préciser que pour le moment je travail sur la même machine, mais qu'a terme, tout se fera à distance, car la machine sur laquelle je fais mes testen local tend à devenir un serveur.
Je me suis donc renseigné dans un premier temps pour savoir comment on fait pour se connecter via ssh sans taper de mot passe, mais [abw@localhost ~]en utilisant un système de clefs.
Et la probleme il me demande toujours un mot de passe !
Je vous décrit un peu le topo. Le serveur web sur lequel tourne le script php est lancer par root (oui je sais c'est pas ce qu'il y a de meiux mais bon...). Le programme php tente d'exécuter le script grace a ssh en se connectant avec un utilistateur : "abw".
Si j'ai bien compris il faut que je génère la clef public de "abw" et que je la copie sur le serveur (la en local) dans le fichier authorized_keys de "root" ?
Par exemple :
[abw@localhost ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/gerard/.ssh/id_dsa): //rien
Enter passphrase (empty for no passphrase): //rien
Enter same passphrase again: //rien
J'ai donc 2 fichiers de créés dans la home dir de "abw"
Je copie donc la clef publique sur le serveur :
[abw@localhost ~]$ cd ~/.ssh
[abw@localhost ~]$ scp id_dsa.pub root@127.0.0.1:
[abw@localhost ~]$ ssh -l root 127.0.0.1
Password:
[root@127.0.0.1 ~]$ cat id_dsa.pub >> .ssh/authorized_keys
[root@127.0.0.1 ~]$ rm id_dsa.pub
[root@127.0.0.1 ~]$ exit
Si après ces manip j'essais de me connecter en ssh de la façon suivante :
[abw@localhost ~]$ ssh -l abw 127.0.0.1
Il me demande un mot de passe :-(
Mais le plus bizard, c'est que lorsque j'essais de me connecter de la façon suivante :
[abw@localhost ~]$ ssh abw:motDePasse@127.0.0.1
Il me redemande mon mot de passe !!
J'ai pourtant décommenté :
Protocol 1,2
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Voila toute l'histoire ! Est-ce que quelqu'un aurai une idée ?
Je suis sous Mandriva 2007, et j'ai un programme spéciale qui doit exécuter un srcipt sur un serveur à distance. Le programme utilise ssh pour réaliser la chose. Le code de la connexion pour l'exéciton du script est coder en php de la façon suivante :
$command="ssh " . REMOTE_USERNAME . "@" . $subject_hostname[$i] . " \"" . GRAPH_SCRIPT . " -r --protocols=" . $graph_type_value . " --label=" . $subject_value . " --parameters_id=1";
En gros pour exécuter le script à distance, si je comprends bien, le programme tente de faire un :
ssh login@mon_adresse:/le/chemin/du/script -r blabla --label=blablabla --parameters_id=1
J'ai essayé d'exécuter cette commande. Elle ne marche pas. D'une part il me demande un mot de passe, d'autre part il n'arrive pas à exécuter ce script...Je tiens à préciser que pour le moment je travail sur la même machine, mais qu'a terme, tout se fera à distance, car la machine sur laquelle je fais mes testen local tend à devenir un serveur.
Je me suis donc renseigné dans un premier temps pour savoir comment on fait pour se connecter via ssh sans taper de mot passe, mais [abw@localhost ~]en utilisant un système de clefs.
Et la probleme il me demande toujours un mot de passe !
Je vous décrit un peu le topo. Le serveur web sur lequel tourne le script php est lancer par root (oui je sais c'est pas ce qu'il y a de meiux mais bon...). Le programme php tente d'exécuter le script grace a ssh en se connectant avec un utilistateur : "abw".
Si j'ai bien compris il faut que je génère la clef public de "abw" et que je la copie sur le serveur (la en local) dans le fichier authorized_keys de "root" ?
Par exemple :
[abw@localhost ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/gerard/.ssh/id_dsa): //rien
Enter passphrase (empty for no passphrase): //rien
Enter same passphrase again: //rien
J'ai donc 2 fichiers de créés dans la home dir de "abw"
Je copie donc la clef publique sur le serveur :
[abw@localhost ~]$ cd ~/.ssh
[abw@localhost ~]$ scp id_dsa.pub root@127.0.0.1:
[abw@localhost ~]$ ssh -l root 127.0.0.1
Password:
[root@127.0.0.1 ~]$ cat id_dsa.pub >> .ssh/authorized_keys
[root@127.0.0.1 ~]$ rm id_dsa.pub
[root@127.0.0.1 ~]$ exit
Si après ces manip j'essais de me connecter en ssh de la façon suivante :
[abw@localhost ~]$ ssh -l abw 127.0.0.1
Il me demande un mot de passe :-(
Mais le plus bizard, c'est que lorsque j'essais de me connecter de la façon suivante :
[abw@localhost ~]$ ssh abw:motDePasse@127.0.0.1
Il me redemande mon mot de passe !!
J'ai pourtant décommenté :
Protocol 1,2
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Voila toute l'histoire ! Est-ce que quelqu'un aurai une idée ?
A voir également:
- SSH sans mot de passe
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Réinitialiser pc sans mot de passe - Guide
4 réponses
Pour éviter d'avoir à taper un mot de passe en ssh, il faut configurer une clé ssh :
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant
En général on protège la clé avec un passphrase. Pour éviter d'avoir à taper la passphrase à chaque fois (on n'aurait pas avancé d'un pouce puisque cela reviendrait à taper la passphrase au lieu du mot de passe ssh) mais uniquement la première fois on utilise la commande :
La clé reste accessible tant que le terminal est en vie.
Bonne chance
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant
En général on protège la clé avec un passphrase. Pour éviter d'avoir à taper la passphrase à chaque fois (on n'aurait pas avancé d'un pouce puisque cela reviendrait à taper la passphrase au lieu du mot de passe ssh) mais uniquement la première fois on utilise la commande :
ssh-add
La clé reste accessible tant que le terminal est en vie.
Bonne chance
Bonjour, c'est ptet le fait que tu n'as pas de passphrase pour ta clé que le mot de passe est demandé. En tout cas si tu veut te débarrasser définitivement des mots de passe tu met dans ta configuration PasswordAuthentification à no et UsePam à no. Ensuite, je te conseille de mettre un passphrase sur ta clé privée. Si tu ne veut pas tapé cette passphrase tu fais comme mamiemando te l'a suggéré, tu utilise la commande ssh-add.