phpseclib의 NET_SSH2 라이브러리를 사용하여 HP 스위치에 연결하려고합니다. 테스트를 시작하기 만하면 로그온을 시도하고 스위치에서 show interfaces brief 명령을 실행합니다. 그러나 그것은 나를 로그온 후, 나는 오류 메시지가 얻을 :phpseclib - HP procurve 스위치에 연결하려고하면 오류가 반환됩니다. SSH 명령 실행이 지원되지 않습니다.
<?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>';
}
?>
이 반환하는 출력은 다음과 같습니다 : SSH2의
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
라인 1941 여기
SSH command execution is not supported.
코드입니다 .php는 아래 보이는 "user_error"라인입니다.
function _send_binary_packet($data)
{
if (feof($this->fsock)) {
user_error('Connection closed prematurely', E_USER_NOTICE);
return false;
}
내가 지금까지했던 어떤
:
- 내가 ssh를 통해 수동으로 로그인하고 내가 같은 명령을 실행할 수 있는지 확인했습니다.
- 나는 스위치의 웹 설정 페이지를 통해 ssh를 켜기 위해 필요한 사항이 없는지 확인했다.
- 나는 비슷한 문제가 있는지 phpseclib의 포럼을 점검 해왔다.
phpseclib의 버전 1.53 2010/10/24 01:24:30을 사용하고 있습니다.
도움을 주시면 감사하겠습니다. 감사.