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?
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.
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 ;)
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.
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?