【问题标题】:ssh2 not working for susessh2 不适用于 suse
【发布时间】:2013-08-31 08:32:13
【问题描述】:

我正在尝试从 RHEL SSH 到 SLES 机器。我正在使用 PHP 函数 ssh2 来实现这一点。即使通过正确的用户名和密码,身份验证也不会发生。但是相同的代码在 RHEL->RHEL 上运行良好。我可以从 RHEL 终端 ssh 到 SLES 机器。但是使用 ssh2 并没有发生。

    <?php
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
// log in at ip on port 22
if(!($con = ssh2_connect(ip, 22))){
    echo "fail: unable to establish connection\n";
} else {
    // try to authenticate with username root, password password
    if(!ssh2_auth_password($con, "root", "password")) {
        echo "fail: unable to authenticate\n";
    } else {
        // allright, we're in!
        echo "okay: logged in...\n";

        // execute a command
        if (!($stream = ssh2_exec($con, 'date' ))) {
            echo "fail: unable to execute command\n";
        } else {
            // collect returning data from command
        //echo "in else";
            stream_set_blocking($stream, true);
            $data = "";
            while ($buf = fread($stream,4096)) {
                $data .= $buf;
            }
        echo $data;
            fclose($stream);
        }
    }
    }
    ?>

我得到输出“失败:无法验证”。为什么会这样?有什么解决办法吗?

【问题讨论】:

    标签: php rhel suse libssh2


    【解决方案1】:

    服务器可能正在使用键盘交互身份验证而不是密码身份验证。

    说真的,libssh2 并没有提供任何让人们知道这一点的好方法。我的建议:试试phpseclib, a pure PHP SSH2 implementation。例如。

    <?php
    include('Net/SSH2.php');
    
    define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);
    
    $ssh = new Net_SSH2('www.domain.tld');
    if (!$ssh->login('username', 'password')) {
        echo $ssh->getLog();
        exit('Login Failed');
    }
    
    echo $ssh->exec('pwd');
    echo $ssh->exec('ls -la');
    ?>
    

    默认情况下,$ssh-&gt;login() 方法将尝试密码验证,但(与 libssh2 不同)如果密码验证失败,它将尝试键盘交互。

    如果两者都不起作用,我发布的代码 sn-p 将回显日志,这样您就可以看到它所期望的输入类型。如果您可以将这些日志发布在您的回复中,以便这里的人们可以诊断出问题,那就太好了。

    谢谢!

    【讨论】:

    • 这是有效的!:) 但我仍然无法弄清楚为什么 ssh2 不适用于 RHEL->SLES。无论如何谢谢:)
    【解决方案2】:

    使用 YAST 安装 libssh2-devel 然后执行

    pecl 安装 ssh2-0.12

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2019-11-09
      • 2013-12-26
      • 1970-01-01
      • 2017-03-28
      • 2017-06-29
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多