Je to trochu stranou tématu tunelování, ale s SSH to souvisí.
Potřeboval bych, aby skript na SSH klientu (na Win - PuTTY?) provedl na vyvolání automatické přilogování a výkon určitých příkazů na počítači s běžícím sshd.
Zcela polopatě - potřebuji, aby uživatel pécéčka byl schopen provést shutdown serveru, aniž by k němu fyzicky chodil psát na klávesnici a aniž by se musel unavovat s pamatováním nějakého vstupního hesla atp.
Věděl byste někdo něco jak to naskriptovat?
Vlákno názorů k článku
Tuneluji, tuneluješ, tunelujeme: přesměrování portů
Skripting v ssh klientu na PC?
Re: Skripting v ssh klientu na PC?
Pouzit Plink (k dostani tamtez, co putty).
Re: Skripting v ssh klientu na PC?
Musíte si přes ssh-keygen vygenerovat veřejný a privátní klíč. Veřejný nacpěte na serveru do domovského adresáře daného uživatele do souboru ~/.ssh/authorized_keys, soukromý uložte na klienta, a pak zavolejte
ssh -i soubor_s_private_klicem user@server "prikazy"
Pokud používáte PuTTY, stáhněte si ze stejného webu plink.exe a puttygen.exe, přes puttygen si zkonvertujte soukromý klíč do formátu, který bude PuTTY schopno zpracovat (stačí natáhnout ze souboru a znovu uložit) a spouštějte
plink.exe -i soubor_s_private_klicem user@server "prikazy"
POZOR! Obvykle (minimálně u základního nastavení Debianu ;-) musí být vlastníkem authorized_keys daný uživatel a musí byt jediný, kdo má k souboru přístup (tedy ani group, ani other), jinak bude tento způsob autorizace odmítnut (kdyžtak se podívejte do logu, SSH tam obvykle vypíše, proč se mu to nelíbilo - to se týká i portu na Windows). Tahle vlastnost se nechá vypnout v sshd_config nastavenim "StrictModes" na "no", ovšem samozřejmě je to na úkor bezpečnosti.
Re: Skripting v ssh klientu na PC?
Díky za tipy.
PuTTY si ty soubory již nějak samo udělalo. Pak pro spuštění plink stačilo:
plink.exe -ssh -pw heslo -l username username@hostaddress halt
Re: Skripting v ssh klientu na PC?
Jo, na tuhle možnost jsem zapomněl, plink umí zadávat z příkazového řádku i heslo (OpenSSH to neumí, alespoň pokud vím). No, nevím, jestli bych heslo nechával povalovat na disku, ale to se asi týká i privátních klíčů...
Re: Skripting v ssh klientu na PC?
Jojo,nechavat heslo na ucet ktery muze shodit server (vetsinou root),to je neco ;-) Stejne jako klic...ale pro klic je dobre,ze mu lze nastavit jaky prikaz se ma spustit (viz man authorized_keys), zadne vnuceni jinych prikazu se nekona. Jde i omezit z jake IP se dany klic muze hlasit (ale pozor, v OpenSSH v tomhle byl byg). Je toho hodne co lze s klici vykouzlit,ale nesmi se to prehnat ;)
Re: skripting + účet pro shutdown + omezení iface
Jsem si vědom, rád bych to dopiloval. Za prvé nějaký účet (ne root), co by mohl pouze shutdown a jinak nic (ani přes konsoli)? Jde to vůbec?
Za druhé, aby se osoba takového účtu mohla přihlásit pouze přes určitý síťový interface (zevnitř LAN), méně ideální je určit pool povolených IP adres. Zároveň bych ale chtěl nechat plné SSH pro jiné účty i z jiných iface, takže filtrací sshd to udělat nejde.
Re: skripting + účet pro shutdown + omezení iface
A co takhle mu nastavit shutdown jako shell?
Re: skripting + účet pro shutdown + omezení iface
Ja bych vygeneroval specialni klic a do authorized_keys dal ze pri prihlaseni na roota s timto klicem se provede prikaz shutdown.
Re: skripting + účet pro shutdown + omezení iface
Uzivatel shutdown s UID=0 a misto shellu shutdown mi prijde jako slusne jednoduche reseni. Prijde mi to takove pekne unixove ;-)
Re: Skripting v ssh klientu na PC?
Mno, pokud je k serveru fyzicky pristup, tak to resim tak ze se vypne na CTRL+ALT+DEL (/etc/inittab ... ca::ctrlaltdel:/sbin/shutdown -t3 -h now). To BFU urcite zvladnou (znaji to z M$) a je to jednodussi nez je ucit zachazet s novym SW.
Re: Skripting v ssh klientu na PC?
Pokud to potřebuje přes SSH, předpokládám, že daní uživatelé fyzický přístup mít nebudou ;-)
Re: Skripting v ssh klientu na PC?
Je to tak napůl. Doma mám fyzický přístup přes štafle na polici pod stropem v předsíni (všude jinde ten hučák vadí) a než jimi pořád verglovat tak je jednodušší to schazovat přes ssh a pak vypínačem, co mi visí dolů. Pro jiné doma by to chtělo něco co nejjednoduššího a aby se mi v tom náhodou nerýpali. S těmi klíči s povolenými příkazy to myslím je docela přiměřené.
Uvažuji ale i pro použití do práce a tam by přístup byl, takže i tahle rada C-A-Del je dost použitelná a díky za ní.
Mimochodem, párkrát server doma pochopitelně někdo vypnul i za běhu a stejně se nic nestalo. Mám pocit, že ext3 je už docela odolný. Přijde mi to podobně odolné jako JFS na AIXu. Jsou nějaké zkušenosti s divokým vypínáním?
Re: Skripting v ssh klientu na PC?
Jo tak zkusenosti s divokym vypinanim jsou. Parkrat to nerozchodil ani ext3 a nasledovaly orgie s e2fsck. To byl ale extrem.

