Extension SSH : Invalid key data, not base64 encoded

Eléphanteau du PHP | 15 Messages

19 mars 2012, 10:32

Bonjour à tous,

Je tente d'effectuer une connexion avec des clés en SSH. J'utilise l'extension de PHP et donc la fonction suivante :

Code : Tout sélectionner

ssh2_auth_pubkey_file($connection, 'u8741574', 'C:/cle/pub.key', 'C:/cle/Private.ppk', 'monMotDePasse');
Seulement j'ai l'erreur suivante :
Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for u8741574using public key: Invalid key data, not base64 encoded in C:\wamp\www\DataManagerExtranet\Mise a jour par trames\index.php on line 594

En gros : "Authentication failed for u8741574using public key: Invalid key data, not base64 encoded"

Je ne sais pas de quoi ça vient.

Les 2 fichiers (clé privée et et clé publique) ont été généré par PuttyGen. Et le mot de passe est valide.

Je comprend bien qu'il s'agit d'un problème d'encodage des fichiers ou de mise en forme de l'écriture des clés à l'intérieur. Mais comment y remédier ?

Merci à vous,

Eléphanteau du PHP | 15 Messages

20 mars 2012, 11:14

Petite mise à jour... :)

Après quelques recherches j'observe que la mise en forme des clés dans les fichiers générés par PuttyGen ne semble pas plaire à notre bonne vieille fonction "ssh2_auth_pubkey_file" de l'extension SSH de PHP.
Visiblement je n'ai trouvé personne ayant trouvé de solution pour un tunnel SSH sous un serveur Windows 2008 R2. :(

Donc 2 solutions s'ouvrent à nous maintenant je pense :
- Générer des clés avec un autre outil (OpenSSH par exemple : mais ne fonctionnant que sur Unix il va nous falloir utiliser Cygwin ou une machine Unix)
- Si cela ne fonctionne toujours pas nous allons alors tenter d'exécuter notre script sur un serveur Unix plutôt que sur un serveur Windows

Si vous avez toutefois des idées je suis preneur. ;)

Merci,