Použití ssh -A a odpojení

tadeas

Použití ssh -A a odpojení
« kdy: 15. 05. 2013, 15:48:28 »
Mám program, který dělá spoustu SSH spojení a běží několik dní. Z tohoto důvodu ho nemůžu pouštět na svém notebooku, ale pouštím ho na serveru. Na všech zúčastněných serverech mám veřejný klíč. Soukromý klíč nesmím nikam nahrát, maximálně se můžu přihlásit přes ssh -A. Přístup mám pouze uživatelský, nemám root.

Pustím program přes nohup (to funguje dobře), ale když se odhlásím, tak program stejně spadne, protože mu zmizí soukromý klíč z paměti a začnou selhávat SSH.

Dá se nějak udržet v paměti klíč nahraný přes "ssh -a" i po logoutu? Nebo vás napadá nějaké jiné řešení, nebo workaround?

Dík :)
« Poslední změna: 15. 05. 2013, 16:22:57 od Petr Krčmář »


Sten

Re:ssh -A + nohup
« Odpověď #1 kdy: 15. 05. 2013, 16:03:31 »
ssh -A forwarduje požadavky poslané SSH agentovi na lokální počítač. Když se lokální počítač odpojí, není kam požadavky forwardovat.

Lze na serveru spustit ssh-add - a klíč mu předat z notebooku pomocí SSH spojení. Tím dojde ke spuštění SSH agenta na serveru a nahrání daného klíče do něj, nicméně to znamená, že daný soukromý klíč je dostupný na serveru a vytáhnout jej z RAM už není moc složité.

Druhá možnost je všechna potřebná SSH spojení otevřít při startu programu a během běhu je nezavírat, takže nebude SSH agent potřeba.

Třetí a asi nejlepší možnost je vygenerovat soukromý klíč pro server, rozkopírovat jej na SSH servery, kam se ten program připojuje, a v authorized_keys na nich omezit použití toho klíče jen na definované úlohy.

tadeas

Re:ssh -A + nohup
« Odpověď #2 kdy: 15. 05. 2013, 16:13:31 »
ssh -A forwarduje požadavky poslané SSH agentovi na lokální počítač. Když se lokální počítač odpojí, není kam požadavky forwardovat.
Jo takhle.. Já žil v domnění, že to kopíruje soukromý klíč. Takhle to je všechno složitější...

Popřemýšlím o tom, každopádně díky za vysvětlení!

Jenda

Re:Použití ssh -A a odpojení
« Odpověď #3 kdy: 15. 05. 2013, 16:25:51 »
Soukromý klíč nesmím nikam nahrát, maximálně se můžu přihlásit přes ssh -A. Přístup mám pouze uživatelský, nemám root.
Nechápu tento požadavek. Pokud je vzdálený počítač evil, je už asi celkem jedno, jestli zneužije klíč přes SSH agenta nebo rovnou…

tadeas

Re:Použití ssh -A a odpojení
« Odpověď #4 kdy: 15. 05. 2013, 16:32:39 »
Soukromý klíč nesmím nikam nahrát, maximálně se můžu přihlásit přes ssh -A. Přístup mám pouze uživatelský, nemám root.
Nechápu tento požadavek. Pokud je vzdálený počítač evil, je už asi celkem jedno, jestli zneužije klíč přes SSH agenta nebo rovnou…
Corporate policy.


Re:Použití ssh -A a odpojení
« Odpověď #5 kdy: 15. 05. 2013, 17:36:48 »
Soukromý klíč nesmím nikam nahrát, maximálně se můžu přihlásit přes ssh -A. Přístup mám pouze uživatelský, nemám root.
Nechápu tento požadavek. Pokud je vzdálený počítač evil, je už asi celkem jedno, jestli zneužije klíč přes SSH agenta nebo rovnou…
Použiješ-li ssh-add -c, vyskočí při každém požadavku na podpis pop-up okýnko. takže přesně víš, kolik certifikátů jsi vydal. Pokud -c nepoužiješ, je to jedno.

Re:Použití ssh -A a odpojení
« Odpověď #6 kdy: 15. 05. 2013, 17:46:27 »
Pokud -c nepoužiješ, je to jedno.
Ani tak to neni uplne jedno - muze klic pouzit, ale nemuze ho ukrast. To muze (a nemusi) byt velky rozdil.

U security tokenu taky neni zas tak tezke klic pouzit (stejne tezke jako pouzit klic v souboru), ale je nemozne ho ukrast.

Re:Použití ssh -A a odpojení
« Odpověď #7 kdy: 16. 05. 2013, 13:05:51 »
Ani tak to neni uplne jedno - muze klic pouzit, ale nemuze ho ukrast. To muze (a nemusi) byt velky rozdil.

U security tokenu taky neni zas tak tezke klic pouzit (stejne tezke jako pouzit klic v souboru), ale je nemozne ho ukrast.
To je pravda, musí klíč zneužít v reálném čase, nebo nagenerovat dostatečné množství podpisů pro všechny možné challenge (což je asi nereálné).

K původnímu dotazu: elegantní řešení je použít sdílené spojení, po manuálním přihlášení otevřít všechna master spojení a skript nechat pracovat ve slave režimu. Více v článku.

Jenda

Re:Použití ssh -A a odpojení
« Odpověď #8 kdy: 16. 05. 2013, 17:24:23 »
Soukromý klíč nesmím nikam nahrát, maximálně se můžu přihlásit přes ssh -A. Přístup mám pouze uživatelský, nemám root.
Nechápu tento požadavek. Pokud je vzdálený počítač evil, je už asi celkem jedno, jestli zneužije klíč přes SSH agenta nebo rovnou…
Použiješ-li ssh-add -c, vyskočí při každém požadavku na podpis pop-up okýnko. takže přesně víš, kolik certifikátů jsi vydal. Pokud -c nepoužiješ, je to jedno.
To je pravda, na druhou stranu sám tazatel popsal počet vydávaných certifikátů jako „spoustu“.

Re:Použití ssh -A a odpojení
« Odpověď #9 kdy: 16. 05. 2013, 17:27:09 »
To je pravda, na druhou stranu sám tazatel popsal počet vydávaných certifikátů jako „spoustu“.
Spoustu _spojení_.

tadeae

Re:Použití ssh -A a odpojení
« Odpověď #10 kdy: 16. 05. 2013, 21:29:39 »
Tak reseni je nakonec novy server vyhrazeny pro toto pouziti a vygenerovani noveho klice, jehoz soukroma cast bude na tom novem serveru. Je to trosku skoda, doufal jsem, ze to pujde vyresit pouze softwarove, ale neda se nic delat (na druhou stranu to neplatim ja, tak mi to muze byt fuk). Aspon mam jistotu, ze mi to nebude nikdo jiny zatezovat.

Jenda

Re:Použití ssh -A a odpojení
« Odpověď #11 kdy: 16. 05. 2013, 21:47:21 »
Tak reseni je nakonec novy server vyhrazeny pro toto pouziti a vygenerovani noveho klice, jehoz soukroma cast bude na tom novem serveru. Je to trosku skoda, doufal jsem, ze to pujde vyresit pouze softwarove
To prostě nevyřešíš, když má někdo na tom vzdáleném stroji roota, tak se prostě nijak skrýt nemůžeš.
ale neda se nic delat (na druhou stranu to neplatim ja, tak mi to muze byt fuk). Aspon mam jistotu, ze mi to nebude nikdo jiny zatezovat.
Hele a třeba o virtualizaci jste slyšeli?

Sten

Re:Použití ssh -A a odpojení
« Odpověď #12 kdy: 16. 05. 2013, 22:05:22 »
To prostě nevyřešíš, když má někdo na tom vzdáleném stroji roota, tak se prostě nijak skrýt nemůžeš.

Řešení by bylo vytvořit na tom stroji jeho vlastní klíč a v authorized_keys omezit, co smí ten klíč na klientech spouštět.

tadeae

Re:Použití ssh -A a odpojení
« Odpověď #13 kdy: 16. 05. 2013, 22:13:36 »
Na tom puvodnim kde jsem to chtel spoustet soukromy klic byt proste nesmi. Nic s tim nenadelam. Ani s verejnym klicem omezenym na konkretni prikazy (ty by stejne zahrnovaly modprobe a hrabani do /proc...).

Ten novy virtualni pravdepodobne je, ale to je principielne jedno, stejne to musi bezet na nejakem zeleze, ktere by jinak nebylo potreba.

Re:Použití ssh -A a odpojení
« Odpověď #14 kdy: 16. 05. 2013, 22:29:10 »
To prostě nevyřešíš, když má někdo na tom vzdáleném stroji roota, tak se prostě nijak skrýt nemůžeš.
Pokud je kompromitovaný stroj, na kterém klíče používám*, tak nepomůže žádné řešení.

* tj. je tam nějaký socket na který pošlu "podepiš mi tohle" a on mi to pošle zpátky podepsaný