Skåne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg
 

Secure Shell

en kort introduktion

Secure Shell (ssh, http://www.cs.hut.fi/ssh/) er et program til at køre sikre sessioner over usikre kanaler; du kan fx bruge det til at køre matlab på superdatamaten nede om hjørnet eller til at kopiere WWW sider over modem'et til SSLUG maskinen uden at nogen kan sniffe dine følsomme data eller dine passwords. ssh er en sikker version af rlogin, rsh og rcp; ssh er nemt at bruge; ssh er et must!

Sikkerheden

Når man begynder en session med ssh, udveksler klienten og serveren først offentlige nøgler (768 bit RSA). Disse bruges til kryptering af den efterfølgende login-procedure. Hvis du er krypteringsekspert, vil du vide hvor sikker denne procedure er; ellers kan du med sindsro gå ud fra, at koden er stor set ubrydelig (for tiden). Login-proceduren baseres enten på dit normale password, eller, hvad der er sikrere, på dit private RSA nøglesæt.

Når forbindelsen mellem klienten og serveren er blevet etableret, vil resten af sessionen foregå krypteret med IDEA, Tripple DES, eller en helt tredie krypteringsmetode. Dette gør at transmissionshastigheden bliver effektivt nedsat til 50%-90% af den ukrypterede hastighed; har man en hurtig netforbindelse betyder dette ikke noget; har man en langsom forbindelse kan man vælge at lade ssh komprimere data, der overføres. Det hele foregår helt transparent!

Paranoia

Lige inden vi går igang med at installere: ssh går ud på at beskytte dig og dine data -- derfor skal du naturligvis være sikker på at du ikke for fat i en manipuleret version af ssh, som i virkeligheden sender dine passwords til sorteper@anderup.us. Du vil på en officiel ftp server derfor finde en PGP signatur til kildeteksten (fx ssh-2.0.13.tar.gz.sig); den er signeret med den officielle ssh-nøgle (DCB9AE01).

Hvordan gør jeg?

Jeg lægger altid programmer i /usr/local/, så jeg let kan se, hvad der ikke fulgte med min Linux distribution; hvis ssh skal sættes op så man kan lave ssh sessioner til maskinen, skal man også have root rettigheder ved installationen.

tlstud$ su -
Password:
tlstud# cd /usr/local/src

Nu skal kildeteksten hentes, for eksempel fra Aalborg, og pakkes ud:

tlstud# ncftp ftp://sunsite.auc.dk/pub/security/ssh/ssh-2.0.13.tar.gz
tlstud# tar -xzvf ssh-2.0.13.tar.gz
  <snip>
tlstud# cd ssh-2.0.13

Og så skal programmet konfigureres til maskinen, oversættes, og installeres; det kan godt tage lidt tid, men det skulle køre lige ud ad landevejen:

tlstud# ./configure
  <snip>
tlstud# make
  <snip>
tlstud# make install
  <snip>

Installationen genererer nogle programmer noget lignende:

tlstud# ls -l /usr/local/bin/ssh* /usr/local/sbin/ssh*
-rwxr-xr-x 1 root root 357775 Jul 7 13:20 /usr/local/bin/ssh-add
-rwxr-xr-x 1 root root 363810 Jul 7 13:20 /usr/local/bin/ssh-agent
-rwxr-xr-x 1 root root  65032 Jul 7 13:20 /usr/local/bin/ssh-askpass
-rwxr-xr-x 1 root root 345047 Jul 7 13:20 /usr/local/bin/ssh-keygen
-rws--x--x 1 root root 642112 Jul 7 13:20 /usr/local/bin/ssh
-rwxr-xr-x 1 root root 693160 Jul 7 13:20 /usr/local/sbin/sshd

og nogle konfigureringsfiler

tlstud# ls -l /etc/ssh*
-rw-r--r-- 1 root root 880 Jul 7 13:20 /etc/ssh_config
-rw------- 1 root root 526 Jul 7 13:20 /etc/ssh_host_key
-rw-r--r-- 1 root root 330 Jul 7 13:20 /etc/ssh_host_key.pub
-rw------- 1 root root 512 Jul 7 17:37 /etc/ssh_random_seed
-rw-r--r-- 1 root root 682 Jul 7 13:20 /etc/sshd_config

Nu skulle vi være klar til at bruge ssh. Så lad os prøve at logge ind på SSLUG maskinen med ssh istedet for telnet, rlogin eller hvad vi nu plejer:

tlstud# exit
tlstud$ ssh www.sslug.dk
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'www.sslug.dk' added to the list of known hosts.
Creating random seed file ~/.ssh/random_seed. This may take a while.
tl@www.sslug.dk's password:
Last login: Tue Jul 7 16:10:00 1998 from tlstud.it.dtu.dk

No mail.
[tl@www tl]$

Yehaa! Nu er vi kryptivt kørende. ssh har også sat DISPLAY system variablen, og dirigerer al X trafik gennem den sikre kanal; en nydelig X-lommeregner op på din skærm hvis du skiver:

[tl@www tl]$ xcalc &

Hvis du vil have mulighed for at køre med den sikrer RSA verifikationsprotokol, skal du have genereret et sæt personlige nøgler på både klienten og serveren:

[tl@www tl]$ ssh-keygen
  <snip>
Enter passphrase:
Enter the same passphrase again:
  <snip>

Passphrasen, som kan være "Argh! hvordan /#!+z?= skal jeg kunne huske dette her?!" beskytter din hemmelige nøgle på serveren. Så skal vi have en nøgle på klienten:

[tl@www tl]$ exit
tlstud$ ssh-keygen
  <snip>
Enter passphrase:
Enter the same passphrase again:
  <snip>

Her bruger vi naturligvis en anden passphrase! Og endelig skal klientens offentlige nøgle kopieres til serveren (det bruger vi naturligvis Secure Copy til!):

tlstud$ scp .ssh/identity.pub tl@www.sslug.dk:~/.ssh/authorized_keys
tl@www.sslug.dk's password:

I filen ~/.ssh/authorized_keys ligger de offentlige nøgler (een per linie) fra alle de klienter man vil tillade at logge ind på ens konto. Lad os prøve at loge ind på SSLUG maskinen igen:

tlstud$ ssh www.sslug.dk
Enter passphrase for RSA key 'tl@tlstud':
Last login: Tue Jul 7 19:34:17 1998 from tlstud.it.dtu.dk

No mail.
[tl@www tl]$

Nu bedes der altså efter passphrasen for den hemmelige nøgle på tlstud og ikke efter passwordet på SSLUG maskinen.

Hvis du også vil kunne bruge ssh til at logge ind på din egen maskine, skal du have startet sshd dæmonen. Dette gøres ved at tilføge linien

/usr/local/sbin/sshd

i filen /etc/rc.d/rc.local. Så startes dæmonen op, som andre dæmoner, når maskinen bootes.

I filerne /etc/ssh_config og /etc/sshd_config kan du konfigurere ssh; fx til ikke at tillade at ssh falder tilbage på rsh, hvis serveren ikke har sshd kørende, eller at bruge Tripple DES default istedet for IDEA. Kig selv i dokumentationen.

Nu er vi kørende!

 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2004-03-07, klokken 21:25 .
 

Siden vedligeholdes af Torsten Lehmann (tl@it.dtu.dk).