我已經閱讀了文章之後的文章,並且找不到可用於我所擁有的「解決方案」的解決方案。使用PHP和私鑰連接到SFTP
我想通過使用php腳本的SFTP上傳文件。我已經成功地使用CyberDuck進行了連接,但我需要以編程方式執行此操作。
我有一個來自我在CyberDuck中使用的供應商的.PPK文件。我有一個用戶名。我有主機名。如果我打開PPK文件,我會看到一些公共線路,專用線路和私有MAC。
有無論如何我可以訪問服務器來做我需要做的事情來使用我擁有的信息嗎?
這裏是我與打碼:
<?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);
?>
我沒有收到任何錯誤,但文件不會在服務器上顯示出來。 我可以確認SSH2安裝在我的虛擬主機上。
感謝您提供的任何幫助。
我強烈建議使用[phpseclib](https://github.com/phpseclib/phpseclib)來達到目的。它比php的ssh2函數更好,並且非常易於使用 – baao 2015-01-31 21:23:41
你似乎並不知道'ssh2_auth_pubkey_file'需要4個參數,而不是3個。http://php.net/manual/en/function.ssh2-auth -pubkey-file.php – 2015-01-31 21:24:28
@charlotte,我確實看到這就是爲什麼我認爲我有問題。我可以將PPK文件拆分爲缺失的元素嗎? – 2015-01-31 21:47:55