使用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";