繁体   English   中英

无法从Apache内部与Net_SSH2连接

[英]Unable to connect with Net_SSH2 from inside Apache

我试图从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运行git得到“ssh权限被拒绝”

答案是:

setsebool -P httpd_can_network_connect=1

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

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

答案是:

setsebool -P httpd_can_network_connect=1

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

AAaarrrggh! 被SELinux再次咬伤。 这个页面有解决方案:php运行git得到“ssh权限被拒绝”

答案是:

setsebool -P httpd_can_network_connect = 1

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM