ssh hogyan is?

Használok ssh-t otthon az alhálón. Mindössze annyit csinálok, hogy sshd fent van a "szerver"(amire rámászok) gépen és egy klienssel meg fellépek. linux mindkettő. ssh usernev@ip-cim paranccsal meg belépek ugyanazzal a jelszóval amivel lokálisan is. Hogy mit nem értek?
1 szakirodalmakba kulcsgenerálással kezdi nekem nincs kulcsom... sshd telepítésekor generált titkos kulcs megegyezik a user passworddel? vagy így nem is titkosított kapcsolaton keresztül kommunikálok?

2 "A szerver elküldi a host- és szerver-kulcsok publikus részét a kliensnek. A kliens összehasonlítja a host-azonosító publikus kulcsot az adatbázisban lévővel és ellenőrzi, hogy az változatlan-e"

ez HUPWikiből van de kismillió szakirodalmat olvastam már vagy én vagyok hülye vagy nemtudom de szentem nem érthető. a szervernek van egy host kulcsa megy egy másik amit óránként változtat ok... de a kliens mivel hasonlítja össze a kulcsot amit kap? milyen adatbázisába van benne? kliensen nincs semmi beállítva bármilyen kliensről tudnék csatlakozni ha nincs külön korlátozva... nem értem.

Hozzászólások

Ha jól értettem a kérdést:
Amikor először kapcsolódik a kliens valahova, akkor elmenti a szerver kulcsát, és ezzel fogja később összehasonlítani. Persze először rákérdez, hogy elfogadod-e azt a kulcsot.

Első konnekt alkalmával kiir nekem egy kulcsot. amit fejbe tarthatok ha elég nagy az agyam.. az a szerver újlenyomata... és ha csatlakozom akkor már megjegyzi a kliens és többé nem zaklat riasztással mert tudja hogy az valóban a szerver host kulccsa... ha jól értem már dereng :) köszi
És azok a kulcsok amit user könyvtárba lehet generálni .ssh állományba az tkp csak arra jó hogy más jelszóval is lehessen csatlakozni mint a user passwd ... ?

"És azok a kulcsok amit user könyvtárba lehet generálni .ssh állományba az tkp csak arra jó hogy más jelszóval is lehessen csatlakozni mint a user passwd ... ?"

Nem. Ilyenkor a kliens a kulccsal autentikalja magat a szerveren, jelszavak egyaltalan nem mennek a halozaton. (Mas kerdes, hogy a helyi gepeden amugy vedheted jelszoval a kulcsodat.) Persze ilyenkor a szerverre fel kell tolteni a publikus kulcsodat, hogy "megismerjen".

A kulcsos autentikacio kenyelmes es sokkal biztonsagosabb is mint a jelszavas. Kulonosen, hogy az emberek hajlamosak egyszeru jelszavakat hasznalni. Ha kiraksz az internetre egy gepet ami elerheto SSH-n akkor kb egy napon belul fogod latni, ahogy mindenfele kinai IP cimekrol probalnak ki 10k jelszot egymas utan. ;) En tobb gepemen emiatt le is tiltom a jelszavas belepest es csak kulcsot hasznalok.

Leegyszerűsítve, mert jóval bonyolultabb azért:

A kliens csatlakozik a szerverhez.

A szerver elküldi a host-key -t.

A kliens megnézi, hogy megvan-e már a host-key neki ehhez a szerverhez.
Ha már megvan, akkor összehasonlítja.
Ha nem egyezik a meglévő host-key a most kapottal, akkor figyelmeztet, hogy possible mitm attack.

Ha nincs még meg ennek a szervernek a host-key -e, akkor a kliens erről szól neked, kiírja a kulcsot, s megerősítést kér a kapcsolatra.
Ha engeded, akkor elmenti a host-keyt a tárolóba.

A kliensed elküldi a kliens-kulcs publikus részét.

A szerver generál egy session-keyt (általában aes szokott lenni a crypto algoritmus).
Ezt a session-keyt elküldi a kliensnek a a kliens publikus RSA kulcsával kódolva.

Innentől a szerver és a kliens a szimmetrikus algoritmusra váltanak az RSA helyett.

Itt történik a felhasználó azonosítása (user/pass bekérése). Ha kulcsos authentikáció volt megadva, nem jelszavas, akkor ez a lépés kimarad.

A szerver indít egy shellt, és shell stdout handle-jét ráirányítja a socket-re, uyanígy az stdin handle-jét is a socketre.

Időnként lecserélik a session-key -t, szintén az RSA kulcssere algoritmussal, mint az elején.

A kulcsos authentikáció annyiban különbözik, hogy nem kér jelszót a szerver, hanem a kliens egy másik RA kulccsal azonosítja, ennek google -val te is utána tudsz nézni.