Kom igang med nøkkelbasert autentisering

Kom igang med nøkkelbasert autentisering

Tue 20 March 2012

I denne artikkelen får du en steg-for-steg gjenomgang på hvordan du kan komme igang med nøkkelbasert autentisering. Dette vil gi deg en sikrere kommunikasjon mellom din klientmaskin (windows, linux etc) og server (linux). Jeg tar utgangspunkt i at du kjører CentOs eller annet rhel baset system.

1: Generer nøkkelpar

Logg inn på en linux maskin med openssh installert.

Om du ikke har en egen bruker så er det på høy tid å lage en nå.

{code class="brush:bash"}

# adduser thomas

# passwd thomas

# su thomas

sånn, da er vi klar til å generere nøkler til brukeren thomas.

{code class="brush:bash"}

$ mkdir ~/.ssh

$ chmod 700 ~/.ssh

$ cd ~/.ssh

$ ssh-keygen -t rsa -b 4096

$ cat id_rsa.pub >> authorized_keys

$ chmod 600 *

$ ls -la

Du har nå 3 filer i ~/.ssh mappen din: id_rsa.pub, id_rsa og authorized_keys

2: Lag nøkkelpar slik at putty fungerer på din windows maskin.

Kopier nå id_rsa.pub og id_rsa over til din windows klientmaskin på den måten du føler passer deg best. Etter at du har kopiert filene fra serveren kan du slette id_rsa filen fra serveren dersom du ikke ønsker at f.eks serveradministrator skal kunne misbruke din private nøkkel. Du kan også slette id_rsa.pub fra serveren siden nøkkelen din allerede ligger i authorized_keys filen på hjemmeområdet ditt.

- Start puttyagent.exe

- Klikk file -> load private key

- Finn frem nøkkelen du nettopp hentet fra serveren, id_rsa og trykk ok. Nøklen lastes, du blir spurt om passord for å låse opp nøkkelen dersom du satte det når du genererte den.

- Klikk file -> save private key, lagre den som f.eks id_rsa.ppk. NB, ikke skriv over den andre id_rsa filen din.

Vi har nå fått enda en fil id_rsa.ppk som du bruker i f.eks winscp, putty eller andre programmer når du skal koble til serveren din.

3: Distribuer din offentlig nøkkel til de serverene du skal logge inn på.

Du kan nå kopiere id_rsa.pub til alle de serverene du ønsker å logge inn på. Husk at du i de aller fleste tilfeller ønsker å gjøre en "$> cat id_rsa.pub >> authorized_keys", for så å fjerne id_rsa.pub filen igjen etterpå.

Det var alt for denne gang. Jeg skal prøve å komme med en liten post om hvordan ssh serveren må være konfigurert for at alt dette skal virke, men i de aller fleste tilfeller er disse tingene allerede skrudd på for deg.

4: Steng ned ssh.

Siden vi nå kun skal bruke nøkkelparet vårt for å logge inn ønsker vi å deaktivere vanlig passordbasert innlogging:


Editer filen /etc/ssh/sshd_config

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Vi ønsker på sikt også å hindre at root får logge inn via ssh siden vi nå skal logge inn som vanlig bruker, og eskalere privilegier v.h.a sudo:

Editer filen /etc/ssh/sshd_config

{code class="brush:bash"}

PermitRootLogin no

Etter at du har editert denne filen må du restarte sshd tjeneste

{code class="brush:bash"}

# /etc/init.d/ssh restart

eller...

{code class="brush:bash"}

# service ssh restart

{jcomments on}

Tagged as : redhat ssh centos