2012-11-14 2 views
0

ssh2_auth_none을 호출하면 true을 반환하는 시나리오가 있습니다. 설명서에 따르면 스위치가 인증없이 로그인 할 수 있도록 구성되었음을 나타냅니다.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()으로 전화를 걸고 싶습니다.

감사합니다.

답변

0

이러한 유형의 스위치에 연결하는 방식을 변경해야했습니다. 문제의 근본 원인은이 스위치의 ssh 구현이 매우 제한되어 phpseclib와 같은 인기있는 라이브러리가 작동하지 않는다는 것입니다.

이 코드는 작동합니다. 시스코의 중소기업 클래스 스위치에 연결하려는 다른 사람들을 돕는 경우에 해당합니다.

<?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); 
    ?>