通过sftp php连接到服务器

时间:2010-12-07 12:00:29

标签: php curl ftp sftp fsockopen

我们如何通过sftp连接到远程服务器以验证登录详细信息在php中是否有效...

我正在使用apache服务器...我的用途是检查用户输入的登录详细信息是否正确。

4 个答案:

答案 0 :(得分:3)

您可以更轻松地使用phpseclib, a pure PHP SFTP client。这是一个例子:

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

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

echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', 'hello, world!');
print_r($sftp->nlist());
?>

libssh2的问题,正如大家的建议,是它没有得到广泛部署,它的API不是最可靠的,它不可靠,支持不佳等等。

答案 1 :(得分:2)

您是否安装了apache服务器?例如:xampp?

如果您这样做,则使用FTP功能:

<?php
$connection = ssh2_connect('ftp.server.com', 22); //port 22 for Shell connections
ssh2_auth_password($connection, 'username', 'password');

$shell_ftp = ssh2_sftp($connection);

$connectionStream = fopen('ssh2.sftp://'.$shell_ftp.'/path/to/fileorfolder', 'r');

if(!connectionStream)
{
    echo "Could not connect to the server, please try agian";
}
else
{
    echo "Successfully logged in.";
}
?>

基本的Shell FTP连接,你必须定义文件或文件夹的绝对路径。

答案 2 :(得分:2)

这会有帮助吗?

<?php
$connection = ssh2_connect('ftp.server.com', 22); 
if (ssh2_auth_password($connection, 'username', 'password')) 
    echo "Authentication success";
else 
    echo "Authentication failure";
?>

答案 3 :(得分:0)

我从多个建议中形成了一个小型的lib。我鼓励

idct sftp client on GitHub