0

我有一个场景,当我打电话时ssh2_auth_none,它会返回true。根据文档,这似乎表明这意味着交换机被配置为允许无需身份验证即可登录。

然而,这种情况并非如此。我们正在使用密码...

这是我的代码的样子:

<?php
$connection = ssh2_connect('10.124.123.45', 22);

$auth_methods = ssh2_auth_none($connection, 'username');
var_dump($auth_methods);

if (in_array('password', $auth_methods)) {
       echo "Server supports password based authentication\n";
}
?>

只是想知道您是否对我可以测试或检查什么来解决此问题有任何想法或意见。最终,我希望能够打电话ssh2_connectssh2_auth_password()登录到这个交换机。

谢谢。

4

1 回答 1

0

我们不得不改变我们连接到这些类型的交换机的方式——问题的根本原因是这个交换机的 ssh 实现非常有限,所以像 phpseclib 这样的流行库不起作用。

这是我们的有效代码 - 以防它帮助任何其他试图连接到 CISCO 小型企业级交换机的人。

  <?php
      $uname = 'myusername';
      $pswd = 'mypassword';
      $connection = ssh2_connect('123.123.123.123', 22);
      //$authentication_methods = ssh2_auth_none($connection, 'user');
      $stdio_stream = ssh2_shell($connection);
      fwrite($stdio_stream,$uname."\n");
      sleep(1);
      fwrite($stdio_stream,$pswd."\n");
      sleep(1);
      echo "Results: " . stream_get_contents($stdio_stream); 
      echo 'sending show bonjour command:<br>';
     fwrite($stdio_stream, "show bonjour".PHP_EOL);
     sleep(1);
     echo "<br>Results: " . stream_get_contents($stdio_stream); 
  ?>
于 2012-11-15T14:58:31.193 回答