PHP-скрипт для выполнения команд на маршрутизаторе Cisco - PullRequest
0 голосов
/ 04 марта 2019

Мне нужно написать скрипт для подключения к маршрутизатору Cisco и выполнения команд.Сервер linux и маршрутизатор Cisco используют ключи ssh, поэтому имя пользователя и пароль не требуются.Я разработал, как установить соединение, но я не знаю, как выдавать команды и читать ответы.

Примечание: он должен быть в php для интеграции с некоторыми другими вещами, которые мы делаем.

Вот что у меня есть: -

<?php

$connection = ssh2_connect("n.n.n.n", 22, array("hostkey"=>"ssh-rsa"));

if(!$connection)
{
  die("Could not connect to the Router \n\r");
  exit();
}

if (ssh2_auth_none ($connection, "username"))
{
  echo("Public Key Authentication Successful\n\r");
}
else
{
  die("Public Key Authentication Failed");
  exit();
}


// New commands based on help received
try
{
  $command = "dir";
  $stream = ssh2_exec($connection, $command);

  // added to test if the ssh2_exec command returns false - which it does, issue is with the command ???
  if(!$stream)
  {
    echo("Command returned False\n\r");
    exit();
  }

  $errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
  stream_set_blocking($errorStream, true);
  stream_set_blocking($stream, true);
  $errorStreamContent = stream_get_contents($errorStream);
  $streamContent = stream_get_contents($stream);
  echo("ErrorStream : " . $errorStreamContent . "\n" . "Stream : " . 
  $streamContent . "\n\r");
}

catch(exception $e)
{
  echo("Error : " . $e);
  exit();
}

?>

Вывод теперь выглядит следующим образом: -

Public Key Authentication Successful
Command returned False

Может кто-нибудь дать мне правильный способ выдачиКоманды и читать какой-либо результат?Спасибо.

1 Ответ

0 голосов
/ 16 мая 2019

Мне удалось это исправить, используя ssh2_auth_pubkey_file для передачи ключей ssh ​​маршрутизатору и аутентификации.После этого все работает нормально.

...