我使用phpseclib连接到sftp服务器,使用库中包含的NET / sftp.php NET_SFTP类:
/* sftp connection */
$this->log[] = '<b>Connecting to:</b> <i>'.$this->ftpServer.'</i><br/>';
// Set up a connection
$sftp = new Net_SFTP($this->ftpServer, $this->ftpPort);
if (!$sftp->login($this->ftpUsername, $this->ftpPassword)) {
exit('Login Failed');
}
echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', 'hello, world!');
print_r($sftp->nlist());
我知道ftpServer和ftpPort变量是正确的,我的输出是:
注意:无法连接到nasl2-itpartner.ddns.me:2223。错误111。 连接被拒绝了 /home/itpabse/public_html/administrator/components/com_itpartner_backup/assets/php/sftp/Net/SSH2.php 在第1049行
登录失败
问题是我无法在任何地方找到错误111的文档。我尝试使用sftp ssh连接到带有filezilla的服务器没问题。对这里可能出错的任何想法?
来自filezilla的日志文件从运行脚本的同一台机器连接到服务器:https://drive.google.com/file/d/0B5BDN-5z0pdmeWM2T093S3dIS2s/view?usp=sharing
答案 0 :(得分:3)
我的防火墙用于传出通信,因为PHP没有打开。这是为了ftp客户端,这就是为什么能够以这种方式建立连接的原因。