2014-08-27 3 views
0

Когда я запускаю команду enable с ssh2_exec(), я не могу загрузить страницу, потому что она ждет пароль.
Я попытался сделать ssh2_exec(connection,'password'), и проблема не устранена.
Мой вопрос - как установить пароль для включения? вот мой код:Вставьте пароль включения ssh2 PHP

<?php 

if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); 
// log in at server1.example.com on port 22 

if(!($con = ssh2_connect("9.0.0.1", 22))){ 
    echo "fail: unable to establish connection\n"; 
} else { 
    // try to authenticate with username root, password secretpassword 
    if(!ssh2_auth_password($con, "mehdi", "123")) { 
     echo "fail: unable to authenticate\n"; 
    } else { 
     // allright, we're in! 
     echo "okay: logged in...\n"; 

     // execute a command 
     if (!($stream = ssh2_exec($con, 'enable'))) { 
      echo "fail: unable to execute command\n"; 
     } else { 
      // collect returning data from command 
      stream_set_blocking($stream, true); 
      ssh2_exec($con, 'PASSWORD'); 
      $data = ""; 

      while ($buf = fread($stream,4096)) { 

       $data .=PHP_EOL. date("Y-m-d H:i:s ").$buf; 
       $data .= PHP_EOL."------------------------------------------------------------------------------------------------------------------------\n"; 
      } 
      echo $data; 
      $fh = fopen("log".date("Y-m-d").".txt", 'a+') or die("can't open file"); 
      fwrite($fh, $data); 
      fclose($fh); 
      fclose($stream); 
     } 
    } 
} 
?> 

пс: Я пытаюсь настроить маршрутизатор Cisco

+1

Вы ищете [ 'ssh2_auth_password();'] (http://de2.php.net/manual/en/function.ssh2-auth-password.php) – DanFromGermany

+0

Нет, когда я исполняю команда «включить» перейти в привилегированном режиме – Lizinh

+0

Нет команды 'enable'. Пожалуйста, обратитесь к официальному документу, чтобы показать, что вы подразумеваете под «enable» и укажите код в вопросе. Никто не может помочь вам без этой информации. – DanFromGermany

ответ

1

, что об этом (с phpseclib)?

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

$ssh = new Net_SSH2('9.0.0.1'); 
$ssh->login('mehdi', '123'); 

$ssh->setTimeout(3); 

$ssh->enablePTY(); 
$ssh->exec('enable'); 
$ssh->read('password:'); // or whatever the password prompt is 
$ssh->write("password\m"); // or maybe without the \n 
echo $ssh->read(); 
+0

Я получаю эти ошибки: Примечание: невозможно открыть канал в C: \ wamp \ www \ CBI \ Net \ SSH2.php в строке 2995 Примечание: невозможно инициировать сеанс интерактивной оболочки в C: \ wamp \ www \ CBI \ Net \ SSH2.php в строке 2529 Примечание: операция запрещена до входа в систему (C: \ wamp \ www \ CBI \ Net \ SSH2.php в строке 2482) – Lizinh

+0

Похоже, что имя пользователя/pw не может быть верный. Вы можете заменить '$ ssh-> login' на' if (! $ Ssh-> login ('mehdi', '123')) exit ('bad login'); 'и post, если вы все еще получаете ошибки или вместо этого получаете сообщение «плохой вход»? – neubert

Смежные вопросы