phpseclib の NET_SSH2 ライブラリを使用して HP スイッチに接続しようとしています。テスト/開始するために、ログオンしてから、スイッチで「show interfaces brief」コマンドを実行しようとしています。しかし、ログオンした後、エラーメッセージが表示されます:
SSH command execution is not supported.
コードは次のとおりです。
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '../phpseclib');
include('Net/SSH2.php');
define('NET_SSH2_LOGGING', true); //turn on logging.
$ssh = new Net_SSH2('10.10.10.10'); //starting the ssh connection to localhost
if (!$ssh->login('', 'password')) { //if you can't log on...
exit('Login Failed');
}
else {
echo 'logged in<br>';
}
echo 'Attempting command: <br>';
$output = $ssh->exec('show interfaces brief');
echo $output.'<br>';
echo 'Error message is: <br>';
$log = $ssh->getLog(NET_SSH2_LOG_COMPLEX);
foreach ($log as $logitem) {
echo $logitem.'<br>';
}
?>
これが返す出力は次のとおりです。
logged in
Attempting command:
Notice: Connection closed prematurely in /var/www/phpseclib/Net/SSH2.php on line 1941
SSH command execution is not supported.
Error message is:
<-
->
<- NET_SSH2_MSG_KEXINIT (0.0015s)
-> NET_SSH2_MSG_KEXINIT (0s)
-> NET_SSH2_MSG_KEXDH_INIT (0s)
<- NET_SSH2_MSG_KEXDH_REPLY (0.5123s)
-> NET_SSH2_MSG_NEWKEYS (0s)
<- NET_SSH2_MSG_NEWKEYS (0s)
-> NET_SSH2_MSG_SERVICE_REQUEST (0s)
<- NET_SSH2_MSG_SERVICE_ACCEPT (0.1962s)
-> NET_SSH2_MSG_USERAUTH_REQUEST (0.0001s)
<- NET_SSH2_MSG_USERAUTH_BANNER (0.0014s)
<- NET_SSH2_MSG_USERAUTH_SUCCESS (0.0392s)
-> NET_SSH2_MSG_CHANNEL_OPEN (0s)
<- NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION (0.0204s)
-> NET_SSH2_MSG_CHANNEL_REQUEST (0s)
<- NET_SSH2_MSG_CHANNEL_SUCCESS (0.1011s)
<- NET_SSH2_MSG_CHANNEL_DATA (0s)
-> NET_SSH2_MSG_CHANNEL_DATA (0s)
<- NET_SSH2_MSG_CHANNEL_EOF (0s)
<- NET_SSH2_MSG_CHANNEL_REQUEST (0s)
<- NET_SSH2_MSG_CHANNEL_CLOSE (0s)
Notice: Connection closed prematurely in /var/www/phpseclib/Net/SSH2.php on line 1941
ssh2.php の 1941 行目は、以下に示す「user_error」行です。
function _send_binary_packet($data)
{
if (feof($this->fsock)) {
user_error('Connection closed prematurely', E_USER_NOTICE);
return false;
}
私がこれまでに行ったこと:
- ssh 経由で手動でログインし、同じコマンドを実行できることを確認しました。
- スイッチの Web 構成ページを調べて、ssh で有効にする必要があるものが他にないことを確認しました。
- 同様の問題がないか、phpseclib のフォーラムをチェックしています。
phpseclib のバージョン 1.53 2010/10/24 01:24:30 を使用しています。
どんな助けでも大歓迎です。ありがとう。