![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Pracuję na systemie Windows 7 z zainstalowaną paczką XAMPP. Próbuję załadować dodatkowy moduł SSH2. W tym celu ściągnąłem bibliotekę php_ssh2.dll i umieściłem w katalogu php/ext. W pliku konfiguracyjnym php.ini dodałem wpis extension=php_ssh2.dll. Niestety po restarcie serwera moduł nie jest ładowany. Ręcznie przez PECL też próbowałem zainstalować. Czy ktoś spotkał się kiedyś z takim problemem? Jest sporo tutoriali w necie jak to naprawić ale pod linuksa. Ja na obecną chwilę pracuje na Windowsie. Inna sprawa, nie mogąc zainstalować modułu php_ssh2.dll postanowiłem korzystać z gotowych rozwiązań typu SSH in PHP albo PHPseclib. Dodam jeszcze, że modułu SSH potrzebuję do łączenia się z routerem CISCO. I niby wszystko wygląda dobrze. Nawiązuje połączenie ale żaden skrypt nie odpowiada na próbę czytania czy zapisania danych. Czy router CISCO ma jakiś specyficzny rodzaj komunikacji? Tym samym skryptem łączyłem się z moim serwer z postawionym Linuksem. Połączenie działa doskonale, Mogę wydawać komendy i otrzymywać odpowiedź. Czemu skrypt komunikując się z routerem nie może zbudować sobie kanału komunikacyjnego? Na tą chwile działa mi jedynie komunikacja Telnet a ona jednak nie jest zbyt bezpieczna ![]() Proszę o odpowiedź. Pozdrawiam Ten post edytował patlysy 25.08.2010, 09:18:28 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wejdź do konsoli
Wpisz Kod php -v I powiedz co Ci wypluje. Podaj także adres z którego pobierałeś php_ssh2.dll -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmm. Co do php_ssh2.dll to powiem szczerze, że linku nie pamiętam. Ale z tego co pamiętam pobrany z jakiegoś prywatnego źródła od użytkowników wypowiadających się na php.net.
Wydając polecenie php-v widzę, że są jakieś błedy: Cytat PHP Warning: PHP Startup: ssh2: Unable to initialize module Module compiled with module API=20060613 PHP compiled with module API=20090623 These options need to match in Unknow on line 0 Warning: PHP Startup: ssh2: Unable to initialize module Module compiled with module API=20060613 PHP compiled with module API=20090623 These options need to match in Unknow on line 0 Czy to jest błąd związany z php_ssh2.dll? Czy znacie jakieś zaufane źródło gdzie można ową bibliotekę pobrać? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wyłącz narazie ten moduł i uruchom php -v jeszcze raz.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wyłączyłem i dostałem odpowiedź o następującej treści:
Cytat PHP 5.3.0 (cli) (built: Jul 2 2009 21:08:11) Copyright © 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright © 1998-2009 Zend Technologies Co teraz powinienem zrobić? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Kurcze głupi jestem :/ Przepraszam.
Utwórz plik i uruchom go w przeglądarce. Potrzebne dla nas informacje to PHP Extension Build -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Phpinfo() zwraca następujące (podstawowe) dane:
Cytat PHP Version 5.3.0 System Windows NT LYSY-PC 6.1 build 7600 ((null)) i586 Build Date Jul 2 2009 21:02:53 Compiler MSVC6 (Visual C++ 6.0) Architecture x86 Configure Command cscript /nologo configure.js Server API Apache 2.0 Handler Virtual Directory Support enabled Configuration File (php.ini) Path no value Loaded Configuration File D:\serwerPHP\xampp\php\php.ini Scan this dir for additional .ini files (none) Additional .ini files parsed (none) PHP API 20090626 PHP Extension 20090626 Zend Extension 220090626 Zend Extension Build API220090626,TS,VC6 PHP Extension Build API20090626,TS,VC6 Debug Build no Thread Safety enabled Zend Memory Manager enabled Zend Multibyte Support disabled IPv6 Support enabled Registered PHP Streams https, ftps, php, file, glob, data, http, ftp, compress.zlib, compress.bzip2, phar, zip Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tls Registered Stream Filters convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*, bzip2.* |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Super
![]() Masz zainstalowanego php VC6 Thread-safe. Nie znalazłem rozszerzenia pod tą wersję. Na tej stronie http://downloads.php.net/pierre/ jest php_shh2 pod wersję vc9 ( http://downloads.php.net/pierre/php_ssh2-s...5.3-vc9-x86.zip ) .Gdybyś uaktualnił u siebie php pod tą wersję byłoby ok ![]() http://windows.php.net/download/ -> VC9 x86 Thread Safe (2010-Jul-21 20:29:51) Ten post edytował wookieb 25.08.2010, 11:56:31 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Super :-)
Dziękuję bardzo :-) obecnie jadę do pracy a tego posta pisze z komórki. Wieczorem przetestuje i odpowiem jak wygląda stuacja :-) a czy znasz może odpowiedź odnośnie routera? Jaka może być tego przyczyna że za pomocą skryptu klienta ssh możliwe jest jedynie zalogowanie się na urządzenie? I router skonfigurowany jest poprawnie. Bez problemu łącze się z nim przez putty. Pozdrawiam i dziękuję |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Nie wiem co to dokładnie za urządzenia ani też nie mam jego dokumentacji. Producent w swoim dziale pomocy powinien zawrzeć taką informację.
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wczoraj oczywiście nie miałem już za wiele czasu by cokolwiek wieczorem zrobić. Przyznam się jednak szczerze (ze wstydem), że do tej pory korzystałem z gotowych rozwiązań typu XAMPP bądź też EasyPHP. Pierwszy raz instaluje osobno Apacha i PHP. Będę musiał jeszcze dzisiaj poszukać jak skonfigurować apacha by ładował moduł PHP. Tak czy inaczej po zainstalowaniu PHP napotkałem kolejny problem. W extension nie ma biblioteki od SNMP, którą w dużym stopniu muszę wykorzystać w projekcie. Czy masz może źródło gdzie mogę pobrać ową DLL-kę dla V9?
Pozdrawiam Ten post edytował patlysy 26.08.2010, 06:17:51 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
W paczkach zip (dla wersji 5.3.2 oraz 5.3.3) jest rozszerzenie snmp. Nie wiem jak w reszcie form "instalacyjnych".
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
No hej,
Zainstalowałem już Apacha i PHP 5.3.3. Serwer działa poprawnie. Do katalogu ext dodałem dwie biblioteki .dll - php_ssh2.dll oraz php_snmp.dll. Zmian dokonałem także w pliku php.ini. Moduł ssh załadowało poprawnie. Sprawdziłem w kodzie i rozpoznaje funkcje typu ss2_connect(). Problem tym razem dotyczy omawianej już wcześniej biblioteki dla SNMP. Wziąłem ją z wersji binarnej php-5.3.3-Win32-VC9-x86. PHP wraz z serwer mam na dysku D (D:\php). W katalogu D:\usr umieściłem miby z pakietu net-snmp. Wyczytałem, że właśnie tam powinny się znajdować. Jednak po wydaniu polecenia z wiersza poleceń php-v zwraca mi następujące błędy: Cytat Cannot find modue (IP-MIB): At line 0 in (none) Cannot find modue (IF-MIB): At line 0 in (none) Cannot find modue (TCP-MIB): At line 0 in (none) Cannot find modue (UDP-MIB): At line 0 in (none) Cannot find modue (SNMPv2-MIB): At line 0 in (none) Cannot find modue (SNMPv2-SMI): At line 0 in (none) Cannot find modue (UCD-SNMP-MIB): At line 0 in (none) Cannot find modue (UCD-DEMO-MIB): At line 0 in (none) Cannot find modue (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none) Cannot find modue (SNMP-COMMUNITY-MIB): At line 0 in (none) Cannot find modue (UCD-DLMOD-MIB): At line 0 in (none) Cannot find modue (SNMP-FRAMEWORK-MIB): At line 0 in (none) Cannot find modue (SNMP-MPD-MIB): At line 0 in (none) Cannot find modue (SNMP-USER-BASED-SM-MIB): At line 0 in (none) Cannot find modue (SNMP-NOTIFICATION-MIB): At line 0 in (none) Cannot find modue (SNMP-TARGET-MIB): At line 0 in (none) Cannot find modue (SNMPv2-TM): At line 0 in (none) Wookieb czy i tym razem pomógłbyś mi rozwiązać ten problem? Pozdrawiam P.S. Zaraz przetestuje czy wykorzystując bibliotekę ssh2.dll uda mi się nawiązać połączenie z routerem. Przetestowałem moduł ssh na podstawie następującego skryptu:
Niestety komunikacja z routerem dalej nie działa. Wnioskuje, że może być to problem z końcem linii. Przeglądarka czeka na odpowiedź ale jej nie uzyskuje gdyż router nie może zatwierdzić polecenia. I tak się zawiesza cała aplikacja. Próbowałem różnych kombinacji - \n, \n\r, \r\n. Niestety żaden znacznik nie jest odpowiedni (chyba, że problem tkwi w czymś innym). Znacie może jeszcze jakieś możliwości jak SSH może oznaczać koniec linii? Ten post edytował patlysy 26.08.2010, 15:57:21 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Teraz to nie wiem czy już pracujesz na xammpie czy na samym apache-u
![]() Moja instalacja jest najczystszą z możliwych. Rozpakowany zip, troche ustawień i koniec. Nie wiem skąd i gdzie kopiowałeś swoje dll-e bo powinno być w jednym miejscu. Sprawdziłem jak mi pójdzie instalacja. Rozpoczęła się odblokowaniem rozszerzenia php_snmp.dll z php.ini i... w phpinfo jest pokazane, że jest zainstalowane. Tylko tyle. Szczerze mówiąc nie wiem jak wygląda teraz twoja instalacja serwera ale jeżeli mógłbym doradzić to nigdy nie instaluj xammp-a ani innych. Bazuj na czystej instalacji ponieważ o wiele łatwiej z aktualizacjami. Tutoriale jak zainstalować apache, php, mysql są dostępne w internecie. -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok ok. Będę próbował. Co do Xamppa, nie korzystam już z niego. Teraz mam zainstalowany czysty serwer Apacha z PHP. Jutro będę kombinował. A z tym ssh nie masz pomysłów?
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A do jakiego momentu dochodzi skrypt? Z tego co się spotykałem znaków nowej linii nie wysyła się poprzez tą funkcję.
-------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Funkcja nawiązuje połączenie. Dostaję komunikat, że zostałem zalogowany i do tej pory jest wszystko ok. W momencie kiedy wywołuję metodę ssh2_exec przeglądarka zapętla się i nie zwraca odpowiedzi. Wczoraj przeprowadzałem też testy skryptem napisanym w JAVIE. Z pod konsoli odpaliłem mały programik, który również nawiązał połączenie ale niestety odpowiedzi nie otrzymał.
Co ciekawe próbowałem także ze znakami hex typu 0x0A (line feed) bądź też 0x0D (Carriage return) i to było dziwne. Skrypt po zastosowaniu takich poleceń końca linii zakończył się jednak odpowiedzi też nie zwrócił. Dodam jeszcze, że SSH na routerze na pewno dobrze jest skonfigurowane. Łącze się bez problemu przez putty. Dziwna dolegliwość. Chciałbym znaleźć rozwiązanie. Buduję aplikację samo zabezpieczającą sieć jako pracę dyplomową. Jeśli zostanę przy telnecie to aplikacja sama w sobie nie będzie bezpieczne :/ Pozdro |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Faktycznie mi też wywala błąd SNMP ale tylko z linii komend. Myślałem, że wywali go też wcześniej przy odpalaniu phpinfo - niestety nie. Jak wrócę z pracy popróbuję coś z tym pokombinować.
Co do SSH2 to szczerze mówiąc nie mam z tym modułem żadnego doświadczenia ale podejrzewam, jedną rzecz, że kiedy pierwszy raz łączyłeś się przez putty do routera, nie prosiło czasem o zaakceptowania klucza? Może coś takiego powoduje problem. Router posiada może listę wydanych poleceń. Za pomocą polecenia "history" możesz podejrzeć jakie komendy wysłał twój skrypt do routera. Jeżeli nic nie pomoże załóż oddzielny temat dotyczący tego problemu. Ten post edytował wookieb 27.08.2010, 08:18:12 -------------------- |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie,
Głowiłem się nad Twoim pomysłem z kluczem jednak sprawdziłem ewentualne problemy z tym związane i to też nie to. Na routerze (bądź też firewallu sprzętowym) włączyłem debugowanie komend. Sprawdziłem jak wygląda próba połączenia przez putty a jak przez skrypt php. I tu widać, że serwer z kompem wymieniają się kluczami i ustanawiają połączenie. Poniżej przedstawiam logi: Odpowiedź routera dla połączenia PUTTY: Cytat Device ssh opened successfully. SSH2: SSH client: IP = '192.168.1.2' interface # = 1 SSH: host key initialised SSH2: starting SSH control process SSH2: Exchanging versions - SSH-1.99-Cisco-1.25 SSH2: send SSH message: outdata is NULL server version string:SSH-1.99-Cisco-1.25SSH2: receive SSH message: 83 (83) SSH2: client version is - SSH-2.0-PuTTY_Release_0.60 client version string:SSH-2.0-PuTTY_Release_0.60SSH2: begin server key generation SSH2: complete server key generation, elapsed time = 1600 ms SSH2 2: SSH2_MSG_KEXINIT sent SSH2 2: SSH2_MSG_KEXINIT received SSH2: kex: client->server aes256-cbc hmac-sha1 none SSH2: kex: server->client aes256-cbc hmac-sha1 none SSH2 2: expecting SSH2_MSG_KEXDH_INIT SSH2 2: SSH2_MSG_KEXDH_INIT received SSH2 2: signature length 143 SSH2: kex_derive_keys complete SSH2 2: newkeys: mode 1 SSH2 2: SSH2_MSG_NEWKEYS sent SSH2 2: waiting for SSH2_MSG_NEWKEYS SSH2 2: newkeys: mode 0 SSH2 2: SSH2_MSG_NEWKEYS receivedSSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH2 2: authentication successful for pix SSH2 2: channel open request SSH2 2: pty-req request SSH2 2: requested tty: xterm, height 24, width 80 SSH2 2: shell request SSH2 2: shell message received Odpowiedź routera dla skryptu PHP: Cytat Device ssh opened successfully. SSH3: SSH client: IP = '192.168.1.2' interface # = 1 SSH: host key initialised SSH3: starting SSH control process SSH3: Exchanging versions - SSH-1.99-Cisco-1.25 SSH3: send SSH message: outdata is NULL server version string:SSH-1.99-Cisco-1.25SSH3: receive SSH message: 83 (83) SSH3: client version is - SSH-2.0-libssh2_1.1 PHP client version string:SSH-2.0-libssh2_1.1 PHPSSH3: begin server key generation SSH3: complete server key generation, elapsed time = 2640 ms SSH2 3: SSH2_MSG_KEXINIT sent SSH2 3: SSH2_MSG_KEXINIT received SSH2: kex: client->server aes256-cbc hmac-sha1 none SSH2: kex: server->client aes256-cbc hmac-sha1 none SSH2 3: expecting SSH2_MSG_KEXDH_INIT SSH2 3: SSH2_MSG_KEXDH_INIT received SSH2 3: signature length 143 SSH2: kex_derive_keys complete SSH2 3: newkeys: mode 1 SSH2 3: SSH2_MSG_NEWKEYS sent SSH2 3: waiting for SSH2_MSG_NEWKEYS SSH2 3: newkeys: mode 0 SSH2 3: SSH2_MSG_NEWKEYS receivedSSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH2 3: authentication successful for pix SSH2 3: channel open request SSH2 3: exec request SSH2 3: exec message receivedSSH3: Session disconnected by SSH server - error 0x00 "Internal error" Dostrzegłem tylko jedną różnice. Mianowicie przy próbie wysłania polecenia. Putty ustala kanał komunikacyjny a skrypt nie: Putty: SSH2 2: channel open request SSH2 2: pty-req request SSH2 2: requested tty: xterm, height 24, width 80 PHP: SSH2 3: channel open request SSH2 3: exec request Czy za pomocą skrypty PHP można ustalić taki kanał? Może to tu tkwi problem: Przepraszam jeśli temat zszedł nieco za bardzo na sprawy związane z sieciami. "Sieciowcy" jednak nie odpowiedzą mi na takie pytanie. Pozdro Ten post edytował patlysy 27.08.2010, 09:23:08 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Za pomocą ssh2_shell
Zrobisz to co chcesz, następnie spróbuj wykonywać polecenia używając zasobu zwróconego przez powyższą funkcję. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 13:57 |