Portál AbcLinuxu, 21. května 2025 05:09
root@anicka# aptitude install libssh2-phpProbirat zde praci s SSH v PHP asi nema smysl. Napsal jsem jednoduchy skriptik, ktery lze imho pouzit jako dobry zaklad pro dalsi vyvoj:
<?php $host = "localhost"; $user = "uzivatel"; $password = "bezpecneHeslo"; $cmd = "df -h"; /* Vytvoreni ssh spojeni */ $ssh = ssh2_connect($host); if (!$ssh) { die ("Chyba - Nelze se spojit s ssh serverem.\n"); } /* Prihlaseni na server */ $sshLogin = ssh2_auth_password($ssh, $user, $password); if (!$sshLogin) { die ("Chyba - Nelze se prihlasit na server.\n"); } /* Spusteni prikazu */ $sshExec = ssh2_exec($ssh, $cmd); if (!$sshExec) { die ("Chyba - Nepodarilo se korektne spustit prikaz.\n"); } /* Precteni odpovedi od ssh serveru */ stream_set_blocking($sshExec, true); while ($line = fgets($sshExec)) { echo $line; } /* Zavreni proudu */ fclose($sshExec); ?>Podobny skriptik jsem pouzil pro monitorovani jednoho zarizeni, ktere umoznuje prihlaseni pres SSH, ale neumoznuje prihlaseni klicem. Dluzno podotknout, ze pro prihlasovani na klasicke PC v siti je dle diskuse u jednoho z mych minulych zapisku o neinteraktivni praci s SSH lepsi pouzit prihlasovani klicem, coz by v PHP snad nemel byt problem. Ja na sve trusted siti dam prednost pouziti hesla. Doufam, ze tento zapisek nekomu pomuze.
Tiskni
Sdílej:
$password = "bezpecneHeslo";Au.
; <?php exit(); ?>Aby se to nenechalo zobrazit při zadání správné adresy a to bez ohledu na konfiguraci serveru a další zákazy jinde. Volitelně můžeš před tenhle řádek přidat nějaké informace (verze) či posměšný vzkaz útočníkovi
Samozrejme pri rebootu je nutne zadat hesloCož je nepřípustné, pokud ten server má být spolehlivý a schopný se sám zotavit z poruch (např. když vypadne proud). Jinak z toho ssh agenta lze klíč vytáhnout stejně jako ze souboru. Je to jen o málo složitější (nestačí cat). Najdeš socket, připojíš se, požádáš, dostaneš. Výhodou agenta je, že klíč není rozšifrovaný na disku, ale jen v paměti. Zbytek je o unixových oprávněních souborů, resp. unix socketu. Takže to opravdu nastejno vyjde. Z poledu bezpečnosti. Ten zbytek je o pohodlí a konfiguračních možnostech, kde jednou se může hodit to a jindy ono.
Prave proto je pouzito ssh, aby byla komunikace bezpecna.Myslím třeba na zjišťování místa na disku by stačilo SNMP.
Jinak, jak v zaveru pisu, je lepsi pouzit prihlasovani klicem.No, ono je jedno, jestli má webserver přístup k heslu nebo k soukromému klíči. Obojí může být docela problém.
<?php echo $_SERVER['tajneheslo']; ?>
exec('ssh člověk@stroj příkaz');? Jinak - řeší nějak ta knihovna ověřování protistrany? Obávám se, že ne…
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.