【问题标题】:cannot connect to ftp.*****.com:22 with phpseclib无法使用 phpseclib 连接到 ftp.*****.com:22
【发布时间】:2017-01-01 18:15:04
【问题描述】:

我是 phpseclib 的新手,我面临与此相同的问题 old Stack Overflow post.

<?php
set_include_path('/home/eibahhxo/public_html/EibaMed/phpseclib');
//echo get_include_path();
ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);
include(get_include_path().'/Net/SFTP.php');

$sftp = new Net_SFTP('ftp.*****.com',22);
if (!$sftp->login('username', 'password')) { //if you can't log on...
print_r($sftp->getSFTPErrors());
   exit('sftp Login Failed');
}

$output = $sftp->put('/inbound/00017', '/00017');
?>

在编写此代码时,它会引发以下错误

注意:无法连接到 ftp.*****.com:22。错误 110。/home/eibahhxo/public_html/EibaMed/phpseclib/Net/SSH2.php 第 1046 行 Array () sftp Login Failed 中的连接超时

我该如何解决这个问题?

【问题讨论】:

  • 该 FTP 主机上可能没有运行 SSH 服务器。 SFTP 不是 FTP!注意丢失的 S!
  • 您可以在运行 PHP 代码的同一台机器上使用命令行sftp 登录到该服务器吗?向我们展示它的日志/输出(使用sftp -v)!
  • @Jakuje 我为转移到另一个 SFTP 帐户所做的事情相同,但它适用于该帐户。它不适用于特定的 SFTP 帐户,并且会引发 SFTP 登录失败等错误

标签: php sftp phpseclib


【解决方案1】:

首先,确保服务实际运行且没有错误。检查错误日志

其次,检查您的 SFTP 服务器是否正在侦听端口 22(查找 LISTENLISTENING):
netstat -na | find ":22"(在 linux 上,使用 grep 而不是 find)

第三,检查您的防火墙是否阻止端口 22。根据您的设置,您可能需要同时检查服务器防火墙和路由器或 VPN 防火墙

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 2015-09-08
    • 2017-05-25
    相关资源
    最近更新 更多