ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 无法从Apache内部与Net_SSH2连接

2019-07-28 13:29:43  阅读:279  来源: 互联网

标签:php ssh apache phpseclib


我试图从PHP SSH,但我收到以下错误:

注意:无法连接到[host].错误13.
第875行/usr/share/php/Net/SSH2.php中的权限被拒绝

这是代码:

<?PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
include_once('Net/SSH2.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);

$ssh = new Net_SSH2($host);

if( $ssh->login($id, $pw) )
{
  error_log("logged");
  $result['data'] = $ssh->exec('dir');
}
else
{
  error_log( $ssh->getLog() );
}
?>

但是当我从命令行运行这个相同的代码与apache混合使用它运行正常.

我有一个与使用paramiko到SSH的python脚本完全相同的问题,并从apache调用.它从命令行运行良好但在apache中从PHP调用时失败并出现权限错误.使用这个脚本只是一个测试; python不会在最终解决方案中使用.

那么,为什么SSH在apache之外工作但不在内部?我已经使用su从命令行运行PHP代码作为apache,这也有效,因此它不是用户权限问题.

更新:

AAaarrrggh!被SELinux再次咬伤.这个页面有解决方案:
php run git got “ssh Permission denied”

答案是:

setsebool -P httpd_can_network_connect=1

基本上,apache无权启动网络连接!?!?

我忽略了提到这是在CentOS系统上,因此在SELinux的监视下,我的错误.

解决方法:

答案是:

setsebool -P httpd_can_network_connect=1

基本上,apache无权启动网络连接

标签:php,ssh,apache,phpseclib
来源: https://codeday.me/bug/20190728/1562039.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有