使用PHP设置SSH连接和SFTP

使用PHP设置SSH连接和SFTP,php,ssh,ftp,sftp,Php,Ssh,Ftp,Sftp,我正在尝试建立一个ssh连接,然后建立一个sftp连接,通过FTP将文件传输到我的服务器。我曾经使用FileZilla成功上传文件 以下是我的登录终端命令和FileZilla登录信息: ssh b0xxxxx@linux7.aa.bb.cc.dd Host: sftp://linux7.aa.bb.cc.dd Username: b0xx Port: 22 这是我的php代码: <?php $ftp_server = "b0xx@linux7.aa.bb.cc.dd";

我正在尝试建立一个
ssh
连接,然后建立一个
sftp
连接,通过FTP将文件传输到我的服务器。我曾经使用FileZilla成功上传文件

以下是我的登录终端命令和FileZilla登录信息:

ssh b0xxxxx@linux7.aa.bb.cc.dd
Host: sftp://linux7.aa.bb.cc.dd
Username: b0xx
Port: 22
这是我的
php
代码:

<?php
    $ftp_server = "b0xx@linux7.aa.bb.cc.dd";
    $ftp_port = 22; 
    $ftp_user = "b0xx";
    $ftp_pass = "##";
    $connection = ssh2_connect($ftp_server, $ftp_port);
    echo "Successful!\n";
    if (ssh2_auth_password($connection, $ftp_user, $ftp_pass)) {
      echo "Successful\n";
    } else {
      die ('Failed...');
    }
    $sftp = ssh2_sftp($connection);
    ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);

?>
这意味着代码没有成功执行连接。有人知道这个错误的原因吗


非常感谢您的帮助。

似乎没有安装SSH2 PECL扩展。安装扩展,然后尝试您的代码

$ftp_server = "b0xx@linux7.aa.bb.cc.dd";
"b0xx@linux7.aa.bb.cc.dd“不是主机名。主机名中不能有“@”。这很可能是一个username@hostname字符串,但
ssh\u connect()
不接受此格式的字符串

删除用户名部分:

$ftp_server = "linux7.aa.bb.cc.dd";

您是否检查过php错误日志文件中的相关消息?
$ftp_server = "linux7.aa.bb.cc.dd";