ssh连接虽然ssh2_connect失败

时间:2016-02-01 13:32:12

标签: php shell

我想连接到远程服务器来执行命令。

这是我的php:

<?php

$dir='ChemAliveMolOpt/TEST';
$remote_file = $dir.'/inputfile';

$command="/home/bomble/ChemAliveMolOpt/ChemAliveExec/ChemAliveMolOpt ".$remote_file;

$connection = ssh2_connect('bomble@40.127.184.54', 21);
ssh2_exec($connection,  $command);

?>

这是我的错误:

  

PHP警告:ssh2_connect():php_network_getaddresses:getaddrinfo   失败:第1行PHP上的php shell代码中未知的名称或服务   警告:ssh2_connect():无法连接到bomble@40.127.184.54   第1行php shell代码中的端口21 PHP警告:ssh2_connect():   无法连接到第1行的php shell代码中的bomble@40.127.184.54

如果我使用ssh bomble@40.127.184.54连接到服务器,它正确连接。

有任何建议吗?

3 个答案:

答案 0 :(得分:2)

您收到错误是因为您尝试连接到无法解析的主机名。这是因为'bomble@40.127.184.54'是不是有效的主机名。显然,该字符串无法解析为IP地址。

文档非常清楚如何使用ssh2_connect()命令:http://php.net/manual/en/function.ssh2-connect.php

它明确指出函数的第一个参数必须是主机名,而不是除了其他东西之外还包含主机名的

BTW:您指定的端口号(端口21)也令人惊讶。你确实确定你有一个ssh服务器在该端口上监听?虽然在技术上可能会非常令人惊讶......

答案 1 :(得分:1)

我的脚本在Windows上运行,但在Linux上不运行。

我发现此解决方案对我有用。

更改Selinux参数。

setsebool -P httpd_can_network_connect on

答案 2 :(得分:0)

在xampp或wamp中添加并启用 php_ssh2 扩展名。确保您将使用正确的php_ssh2扩展名。否则,它将无法正常工作。