Kom igang med nøkkelbasert autentisering
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}