Se connecter à SFTP en utilisant PHP et la clé privée

J'ai lu l'article après article et juste ne peut pas trouver "la solution" qui fonctionne pour ce que j'ai.

Je suis en train de télécharger des fichiers via SFTP à l'aide de scripts php. J'ai connecté à l'aide de CyberDuck avec succès, mais j'ai besoin de le faire par programmation.

J'ai un .PPK fichier du fournisseur que j'ai utilisé dans CyberDuck. J'ai un nom d'utilisateur. J'ai le nom d'hôte. Si j'ouvre le fichier PPK je vois certains Publics, des Lignes, des Lignes Privées et Privés-MAC.

Est-il de toute façon je peux accéder au serveur de faire ce que je dois faire en utilisant les informations que j'ai?

Voici le code que j'était en train de jouer avec:

<?php if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
?>
<?php
$conn = ssh2_connect('hostname.com', 22);
echo $conn;
ssh2_auth_pubkey_file($conn,'USERNAME','/var/www/html/FILENAME.PPK');

//send a file
ssh2_scp_send($conn, '/var/www/html/FILETOSEND.TXT', 'FILETOSEND.TXT', 0644);
?>

Je ne reçois pas toutes les erreurs, mais le fichier ne se trouve pas sur le serveur.
Je peux confirmer que SSH2 est installé sur mon hébergeur.

Merci pour toute aide que vous pouvez fournir.

  • Je vous recommande fortement d'utiliser phpseclib pour ce que vous voulez atteindre. C'est beaucoup mieux que de php construire en ssh2 fonctions et très facile à utiliser
  • Vous ne semblez pas savoir que ssh2_auth_pubkey_file s'attend à 4 arguments et non 3. php.net/manual/en/function.ssh2-auth-pubkey-file.php
  • Je ne vois que ce qui est pourquoi je suppose que je suis d'avoir des problèmes. Puis-je rompre le fichier PPK dans les éléments manquants?
  • merci je vais regarder
  • Le ppk extension indique que la clé est un Mastic formaté la clé privée. libssh2 ne fonctionne qu'avec PKCS1 formaté clés privées. phpseclib - comme l'avait recommandé michael - prend en charge à la fois. Voir phpseclib.sourceforge.net/ssh/compare.html#pubkey
  • Jetez un oeil à andy-carter.com/blog/connecting-to-sftp-with-php il explique comment le faire

InformationsquelleAutor Joey Martin | 2015-01-31