내 환경pfsockopen이 작동하지 않는 것 같습니까?
CLI를 통해 Windows 7에서이 PHP 스크립트를 실행하려고합니다. 하나의 전송 및 배너 메시지를받을 수있는 SSH를 확립하기 위해
시험 배경
. "SSH-2.0-whatever \ r \ n"을 서버에 보내면 서버가 "SSH-2.0-whatever \ r \ n"백을 돌려 보낸다 (다른 방법으로도 가능함). 그런 다음 메시지를 받는다. 서버가 지원하는 알고리즘을 포함합니다. 즉.
SSH-2.0-OpenSSH_5.3
♥♀
¶ólÆƧw↔F;ï÷╝ähºv ~diffie-hellman-group-exchange-sha256,diffie-hellman-group-e
xchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 ☼ssh-rsa,s
sh-dss ¥aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des
-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
.liu.se ¥aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3de
s-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
r.liu.se ihmac-md5,hmac-sha1,[email protected],hmac-ripemd160,hmac-ripemd160
@openssh.com,hmac-sha1-96,hmac-md5-96 ihmac-md5,hmac-sha1,[email protected],
hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 §none,[email protected]
openssh.com §none,[email protected]
그래서의 출력이이 두 스크립트처럼 보인다 위를 주어진 코드를 실행 한 :
(스크립트 1) 여기서
<?php
$fsock = fsockopen('shell.sourceforge.net', 22);
echo fgets($fsock, 1024);
fputs($fsock, "SSH-2.0-test\r\n");
echo fread($fsock, 1024);
출력의 다른 출력 후에도 동일한 출력을 제공해야합니다.
(스크립트 2)
<?php
$fsock = pfsockopen('shell.sourceforge.net', 22);
echo fgets($fsock, 1024);
(스크립트 3)
<?php
$fsock = pfsockopen('shell.sourceforge.net', 22);
fputs($fsock, "SSH-2.0-test\r\n");
echo fread($fsock, 1024);
불행하게도, 스크립트 1 스크립트 2와 결합 된 스크립트 3 일치하지 않습니다. 스크립트 2는 마치 스크립트 2가 실행 한 것처럼 실행되는 것처럼 보입니다. 출력 :
SSH-2.0-OpenSSH_5.3
SSH-2.0-OpenSSH_5.3
왜 작동하지 않습니까?