Ho letto l'articolo dopo l'articolo e non riesco a trovare "la soluzione" che funziona per quello che ho.Connessione a SFTP utilizzando PHP e chiave privata
Sto tentando di caricare file tramite SFTP utilizzando lo scripting php. Mi sono collegato correttamente con CyberDuck, ma ho bisogno di farlo in modo programmatico.
Ho un file .PPK dal fornitore che ho usato in CyberDuck. Ho un nome utente. Ho il nome host. Se apro il file PPK, vedo alcune linee pubbliche, linee private e private-MAC.
Esiste comunque la possibilità di accedere al server per fare ciò che devo fare utilizzando le informazioni che ho?
ecco il codice Stavo giocando con:
<?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);
?>
non ricevo gli eventuali errori ma il file non si presenta sul server. Posso confermare che SSH2 è installato sul mio webhost.
Grazie per l'aiuto che puoi fornire.
Si consiglia vivamente di utilizzare [phpseclib] (https://github.com/phpseclib/phpseclib) per ciò che si desidera ottenere. È molto meglio della build di php nelle funzioni ssh2 e molto facile da usare – baao
Sembra che tu non sappia che 'ssh2_auth_pubkey_file' si aspetta 4 argomenti e non 3. http://php.net/manual/en/function.ssh2-auth -pubkey-file.php –
@charlotte, ho visto che è per questo che presumo di avere problemi. Posso dividere il file PPK negli elementi mancanti? –