2011-03-14 187 views
0

在Ubuntu機器下,我想創建一個腳本,允許我通過SFTP發送文件。爲此,我使用下面的代碼:通過sftp發送文件

$connection = ssh2_connect('XXX', 22); 

if (ssh2_auth_password($connection, 'USER', 'PASS')) { 
    echo "Authentication Successful!\n"; 
} else { 
    die('Authentication Failed...'); 
} 

的第一結果:

Warning: ssh2_auth_password(): Authentication failed for ... 

從我讀了很多這延長ssh2.so失蹤教程的思想。所以我安裝它,仍然沒有結果。

+0

正確的用戶名和paswword可以與連接 – bensiu 2011-03-14 15:32:59

回答

-2

可以使用流機制:ADRESS目標文件

$dest = "ftps://user:[email protected]/destinationfile.txt"

,然後用標準的PHP copy功能:

copy($from, $dest) 
+3

-1幫助。 [SFTP](http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)與[FTPS](http://en.wikipedia.org/wiki/FTPS)不一樣。 – 2011-03-14 15:51:14

+0

它給這個錯誤:警告:複製()[function.copy]:連接()失敗:連接被拒絕在 – FzhEmca 2011-03-14 16:54:17

1

,而不是基於SSH2功能,我建議phpseclib, a pure PHP SFTP implementation

使用phpseclib你可以這樣做:

<?php 
include('Net/SFTP.php'); 

$sftp = new Net_SFTP('www.domain.com'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $sftp->pwd() . "\r\n"; 
$sftp->put('filename.ext', file_get_contents('localfile.data');); 
print_r($sftp->nlist()); 
?> 
+0

我不現在當我可以下載SFTP類,幫助懇求 – FzhEmca 2011-03-14 17:49:01

+0

結果:登錄失敗,但在CMD它工作非常好,參數connexions是正確的... :( – FzhEmca 2011-03-14 18:06:13

+0

@FzhEmca:你可以從http://sourceforge.net/projects/phpseclib/files/phpseclib0.2.1a.zip/下載下載 – anubhava 2011-03-14 19:30:33