Jak mogę połączyć się do SSH za pomocą PHP aby wysłać polecenie uruchamiające skript?
Jak mogę połączyć się do SSH za pomocą PHP aby wysłać polecenie uruchamiające skript?
PHP ma funkcje:
shell_exec("ADRES SKRYPTU.sh");
Możesz mieć ją wyłączoną, w konfiguracji PHP.
O ile masz na myśli połączenie z zewnętrznym serwerem, to może ci pomóc:
$serwer = "IP"; $login = "NAZWA UŻYTKOWNIKA"; $haslo = "HASŁO DO UŻYTKOWNIKA"; $komenda = 'KOMENDA DO WYKONANIA' $polaczenie = ssh2_connect($serwer, 22); ssh2_auth_password($polaczenie, $login, $haslo); $stream = ssh2_exec($polaczenie, $komenda); stream_set_blocking($stream, true); $wynik = stream_get_contents($stream);
Ta metoda potrzbuję rozszerzenia SSH2 od PHP.
apt-get install php-ssh2
Otrzymuje następujący błąd:
PHP Parse error: syntax error, unexpected '$polaczenie' (T_VARIABLE)
Ups, mała poprawka. Zapomniałem ' ; ' na jednej linice. (Ciężko pisać kod telefonem :kappa:) Oto poprawny kod:
$serwer = “IP”; $login = “NAZWA UŻYTKOWNIKA”; $haslo = “HASŁO DO UŻYTKOWNIKA”; $komenda = ‘KOMENDA DO WYKONANIA’; $polaczenie = ssh2_connect($serwer, 22); ssh2_auth_password($polaczenie, $login, $haslo); $stream = ssh2_exec($polaczenie, $komenda); stream_set_blocking($stream, true); $wynik = stream_get_contents($stream);
Poprawiłem i mam następujący błąd:
PHP Warning: ssh2_exec(): Connection not authenticated in
PHP Warning: stream_set_blocking() expects parameter 1 to be resource, boolean given
:thinking: ... :thinking: :thinking: ...
Zauważyłem że forum koduję znak ' " ' na ' “ ' znak podczas pisania kodu jako cytat. Uwież mi jest różnica. Zostawię to panu @SystemZ do rozwiązania.
Tutaj masz najprawdopodobnie działający kod 😂 https://pastebin.com/raw/nxvBXHi6
bo ty pakujesz kod w cytat, to nie działa 😉
musisz zrobić tak: ```php kod ```
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.