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 80PHP:
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