6

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

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

4

4 回答 4

4

你有安装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 连接,您必须定义文件或文件夹的绝对路径。

于 2010-12-07T12:10:13.290 回答
3

使用纯 PHP SFTP 客户端 phpseclib可能会更轻松。这是一个例子:

<?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 并不是最可靠的,它不可靠,支持很差等等。

于 2010-12-07T15:33:29.330 回答
2

这会有帮助吗?

<?php
$connection = ssh2_connect('ftp.server.com', 22); 
if (ssh2_auth_password($connection, 'username', 'password')) 
    echo "Authentication success";
else 
    echo "Authentication failure";
?>
于 2010-12-07T12:59:01.677 回答
0

我从多个建议中形成了一个小库。我鼓励

GitHub 上的 idct sftp 客户端

于 2014-07-21T06:13:45.357 回答