2013-07-26 3 views
0

J'essaie d'écrire un script PHP qui se connecte à un serveur distant par ssh et exécute une commande. ceci est mon code à ce jour:L'authentification a échoué ssh2_auth_pubkey_file()

$ssh = ssh2_connect($ip,22); 
$boolean = ssh2_auth_pubkey_file($ssh, $user, './pubkey.pub', './privatekey.ppk'); 
$stream = ssh2_exec($ssh, $command); 
stream_set_blocking($stream, true); 

Retour Mon script suivant: exception

Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for $user using public key in file.php 

Lorsque je me connecte avec Putty et ma clé privée je peux me connecter sans aucun problème.

J'ai généré la clé publique à partir de mon fichier .ppk avec PuttyGen.

Quelqu'un pourrait-il aider?

Répondre

0

Personnellement, je pense que vous feriez mieux d'utiliser phpseclib, a pure PHP SSH implementation. par exemple. Entre autres choses, il ne nécessite pas de clé publique distincte et de fichier de clé privée. Donc, c'est un problème potentiel pour vous. Une incompatibilité dans les fichiers de clé publique/privée. De plus, avec phpseclib, vous pouvez activer la journalisation et voir où, exactement, elle échouait, alors que libssh2 ne propose pas cette fonctionnalité.