next up previous index
Következő: 5.9.6.1.3 Mit tud még Fel: 5.9.6.1 SSH - a Előző: 5.9.6.1.1 Miért használjunk ssh-t   Index

5.9.6.1.2 Hogyan működik?

Az ssh RSA kulcsokon alapul. Minden ssh-t használó gépnek van egy host-azonosító RSA kulcsa (alapértelmezésben 1024 bit). A szerver gépen az sshd démon ezen kívül generál egy szerver RSA kulcsot is (alapértelmezésben 768 bit), amelyet óránként frissít, és amit soha nem tárol a merevlemezen.

Amikor egy kliens (ssh) hozzákapcsolódik a szerverhez (sshd), először a szerver azonosítása történik meg. 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ázisában lévővel és ellenőrzi, hogy az változatlan-e. Ezután a kliens generál egy 256 bites véletlenszámot, amit a szerver host- és szerver-kulcsával egyaránt titkosít, majd ezt visszaküldi a szervernek. A szerver az RSA kulcsai ismeretében vissza tudja fejteni a titkosított véletlenszámot, amit a továbbiakban a két oldal a forgalom titkosító kulcsául (session key) fog használni - ettől a ponttól kezdve minden titkosított, IDEA, DES, 3DES, ARCFOUR (RC4) vagy TSS algoritmust használva.

A következő lépés a kliens-azonosítása (autentikáció). Több módszer áll ehhez a rendelkezésünkre:

Ha a kliens sikeresen azonosította magát, akkor a kapcsolat előkészítéseként különböző szolgáltatásokat kérhet a szervertől: pszeudo-terminál allokálását, az X11-es kapcsolatok átirányítását a biztonságos csatornára, tetszőleges TCP/IP kapcsolatok átirányítását a biztonságos csatornára vagy az úgynevezett authentication agent kapcsolat átirányítását a biztonságos csatornára.

Végül a kliens vagy egy shell indítását (slogin, ssh) vagy egy parancs végrehajtását (ssh, scp) kérheti a szervertől.

A fázisokat jól illusztrálja az ssh verbose módban való indítása:

kadlec@blackhole:$ ssh -v sunserv
SSH Version 1.2.13 (i486-unknown-linux), protocol version 1.3.
Standard version. Does not use RSAREF.
Reading configuration data /home/kadlec/.ssh/config
Applying options for *
Reading configuration data /usr/local/etc/ssh_config
ssh_connect: getuid 648 geteuid 0 anon 0
Connecting to sunserv [148.6.0.5] port 22.
Allocated local port 1022.
Connection established.
Remote protocol version 1.3, remote software version 1.2.13
Waiting for server public key.
Received server public key (768 bits) and host key (1024 bits).
Host `sunserv` is known and matches the host key.
Initializing random; seed file /home/kadlec/.ssh/random_seed
Encryption type: idea
Sent encrypted session key.
Received encrypted confirmation.
Trying rhosts or /etc/hosts.equiv with RSA host authentication.
Remote: Accepted by .shosts.
Received RSA challenge for host key from server.
Sending response to host key RSA challenge.
Remote: Rhosts with RSA host authentication accepted.
Rhosts or /etc/hosts.equiv with RSA host authentication accepted by server.
Requesting pty.
Requesting X11 forwarding with authentication spoofing.
Requesting authentication agent forwarding.
Requesting shell.
Entering interactive session.
Last login:
No news.
You have mail.
kadlec@sunserv:$ exit
Connection to sunserv closed.
Transferred: stdin 14, stdout 1109, stderr 31 bytes in 40.4 seconds
Bytes per seconds: stdin 0.3, stdout 27.5, stderr 0.8
Exit status 0


next up previous index
Következő: 5.9.6.1.3 Mit tud még Fel: 5.9.6.1 SSH - a Előző: 5.9.6.1.1 Miért használjunk ssh-t   Index

1999-09-17