0

当我尝试无密码登录时,我无法登录我们的生产服务器。服务器是 solaris 并使用安全 shell ssh2。它不接受公钥或密码。现在我完全被锁在外面了。

我得到密码提示,但在我输入密码后立即出现以下错误。

ssh 服务器 admin@sever 的密码:已通过部分成功的身份验证。权限被拒绝(公钥)。

这是一个严重的问题。请帮忙。

4

1 回答 1

0

听起来它可能正在尝试使用多因素身份验证。我不知道如何让 libssh2 做到这一点,但是使用phpseclib(一个纯 PHP SSH2 实现)可以很容易地做到这一点。一个例子如下:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'pass1', 'code1')) {
    exit('Login failed');
}
// this does the same thing as the above
//if (!$ssh->login($username, 'pass1') && !$ssh->login('username', 'code1')) {
//    exit('Login failed');
//}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>

源代码:http : //phpseclib.sourceforge.net/ssh/auth.html#multifactor

于 2013-09-17T04:50:09.360 回答