2017-07-02 68 views
0

我有一個帶有ARM64架構的小型Pc板Pine64A +。我已經安裝在Ubuntu Xenial上16.04使用SSL配置VSFTPd以便與phpseclib正常工作

我想用VSFTP創建一個帶有SSL證書的FTP服務。

看一些互聯網上的指南,我想VSFTP工作正常。 這是我的配置:

listen=YES 
tcp_wrappers=YES 
dirlist_enable=YES 
connect_from_port_20=YES 
anonymous_enable=NO 
local_enable=YES 
write_enable=YES 
#local_umask=022 
nopriv_user=vsftpd 
virtual_use_local_privs=YES 
guest_enable=YES 
user_sub_token=$USER 
local_root=/var/www/$USER 
chroot_local_user=YES 
hide_ids=YES 
guest_username=vsftpd 

pasv_enable=YES 
pasv_promiscuous=YES 
pasv_address=leocric.root.sx 
pasv_addr_resolve=YES 
pasv_min_port=45000 
pasv_max_port=45000 

xferlog_enable=YES 
xferlog_file=/var/log/vsftpd.log 
xferlog_std_format=YES 

ssl_enable=YES 
#implicit_ssl=YES 
rsa_cert_file=/etc/vsftpd/vsftpd.pem 
rsa_private_key_file=/etc/vsftpd/vsftpd.pem 
force_local_data_ssl=YES 
force_local_logins_ssl=YES 
ssl_tlsv1=YES 
ssl_sslv2=YES 
ssl_sslv3=YES 
require_ssl_reuse=NO 
ssl_ciphers=HIGH 

ascii_upload_enable=YES 
ascii_download_enable=YES 

SSL證書與生成的代碼:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem 

在這一刻,我覺得它工作得很好,因爲如果我使用FileZilla中,我可以在TLS1正確連接.2 但是我的PHP代碼沒有。

我用作曲者安裝phpseclib。我認爲,這個代碼工作正常,因爲我已經測試過另一臺SFTP服務器。 的代碼如下:

require __DIR__ . "/vendor/autoload.php"; 

$sftp = new \phplibsec\Net\SFTP("hostname.tld", 50021); 
if(!$sftp->login("user", "pass")) 
{ 
    echo($sftp->isConnected() ? "Login failed!" : "Error establishing connection"); 
    print_r($sftp->getSFTPErrors()); 
    die(); 
} 

與其他服務器,我也可以上傳文件,請求目錄列表,等等。用我的VSFTP服務器,我得到了:Error establishing connection

有人可以幫助我嗎?

回答

0

這聽起來像你試圖通過SSL連接到FTP。那是不是 SFTP是什麼。 SFTP是SSH上的SFTP。這是一個明顯不同於FTP的協議。引用wikipedia's entry on SFTP

SFTP不是通過SSH運行的FTP,而是由IETF SECSH工作組從底層設計的新協議。

+0

因此,VSFTP並不是獲得SFTP的好選擇,對吧?我需要使用什麼? – Klode

+0

@Klode - 我只是使用OpenSSH。 'sudo apt-get install openssh-server'應該可以做到這一點(假設它尚未安裝)。 – neubert

相關問題