Php 在CodeIgniter控制器中建立SSH连接

Php 在CodeIgniter控制器中建立SSH连接,php,codeigniter,ssh,Php,Codeigniter,Ssh,最近我遇到了这个库,它允许我通过ssh连接到远程机器。(本例中为假123.45.67.890。该库为 但是,我遵循了概述选项卡中给出的说明,如下所示: public function deploy_test() { $params = array( 'hostname' => "123.45.67.890", 'port' => 23, 'username' => "us

最近我遇到了这个库,它允许我通过
ssh
连接到远程机器。(本例中为假
123.45.67.890
。该库为

但是,我遵循了
概述
选项卡中给出的说明,如下所示:

public function deploy_test()
{
    $params = array( 
                'hostname' => "123.45.67.890",
                'port' => 23,
                'username' => "username",
                'password' => "password"
                );

    if(!($con = $this->ssh->connect($params))) {
        echo json_encode("fail: unable to establish connection\n");
    }
    else {
        echo json_encode("helloworld");
    }
}
当我在网页上看到的是:

fail: unable to establish connection
因此,厌倦了这一点,我安装了
ssh2
库,并重申了我的服务器:

public function deploy_test() {
    $connection = ssh2_connect("123.45.67.890", 23);

    if(!$connection) {
       echo json_encode('Connection failed');
    }

    ssh2_auth_password($connection, "username", "password");
    $stream = ssh2_exec($connection, "ls -l");
    stream_get_blocking($stream, true);
    $output = "";
    while($line = fgets($stream)) {
        $output .= $line;
    }
    echo json_encode($line);
}
结果并不令人鼓舞:

<p>Severity: Warning</p>
<p>Message:  ssh2_connect(): Unable to connect to 123.45.67.890 on port 23</p>
<p>Filename: controllers/automation.php</p>
<p>Line Number: 70</p>

另一台服务器已经安装了
freSSHD
,可以连接了。我已经尽了全力。有人能帮我吗?

CodeIgniter-SSH2库正在使用php的本机函数SSH2\u connect(),它是基于sftp的安全shell登录,基本上连接到端口22。请尝试更改您的端口:

$connection = ssh2_connect("123.45.67.890", 22);

你是说它可以从你的
test.php
文件中运行,但当你从CodeIgniter控制器运行相同的代码时就不行了?@MattB.这正是我要说的……你相信吗?你能创建一个只包含
deploy\u test()的新控制器吗
方法,如果您使用的是自定义控制器基类,请让它从
CI_controller
继承?然后将测试控制器的完整代码发布在gist.github.com或pastebin上。也许这会帮助我们隔离问题。实际上,这基本上就是您在这里发布的内容,所以我自己创建它只是为了c李尔:。当你从这个测试控制器上运行它时,它不起作用?@MattB。我现在就做,并在你创建的
gist
上发布答案。是的,但仍然取决于域/ip设置为处理ssh连接的端口。@PinoyPal My
freeshd
设置为通过端口
23
接收连接最让我头疼的是为什么当我执行
test.php
时它会工作。。。
$connection = ssh2_connect("123.45.67.890", 22);