Några enkla inställningar är allt som behövs för att vardagssysslorna ska bli lite enklare. Samtidigt får du tips om hur du kan skydda nycklarna för att höja säkerheten.

Av Mikael Falkvidd

Privata SSH-nycklar som kommer på villovägar kan ställa till det. Fast genom att konvertera dina nycklar till formatet som infördes med OpenSSH 6.5 kan du skydda dem.

Lite som brukligt med Datormagazin bjuder vi på en guide som kompletteras av en kodsnutt som du kan ladda ned via länken underst i artikeln. Dessa instruktioner bör fungera på alla system med OpenSSH 6.5 eller senare (oavsett om du kör Cygwin, Linux eller OS X).

Tips på ett verktyg som enkelt låter dig installera nycklar på andra datorer: ssh-copy-id.
Tips på ett verktyg som enkelt låter dig installera nycklar på andra datorer: ssh-copy-id.

Börja med att kolla styrkan på de nycklar som finns:

for file in ~/.ssh/*.pub; do echo $file; ssh-keygen -l -f $file; done

Får du svaret att filen eller katalogen saknas har du inte skapat några nycklar. Skapa en ed25519-nyckel och en 2 048-bits RSA-nyckel:

ssh-keygen -o -t rsa -a65

ssh-keygen –o -t ed25519 -a65

Parametern ”-o” talar om att du vill spara nyckeln i det nya nyckelformatet som har skydd mot brute force-attacker, medan parametern ”-a” anger 65 iterationer för att skydda nyckeln. Fler iterationer innebär att det tar längre tid att testa varje lösenord om någon kommer över din privata nyckelfil. Samtidigt betyder det att denna tid behöver spenderas när nyckeln ska låsas upp, vilket gör att varje upplåsning tar mer tid om du använder ett stort antal iterationer. Standardvärdet är 16, men 65 iterationer tar bara cirka en sekund på en i7-processor.

Datormagazins skript laddar dina SSH-nycklar första gången du startar en terminal. Sedan finns de tillgängliga utan lösenord när du ska logga in på andra datorer. Säkert och smidigt.
Datormagazins skript laddar dina SSH-nycklar första gången du startar en terminal. Sedan finns de tillgängliga utan lösenord när du ska logga in på andra datorer. Säkert och smidigt.

Nyckelgenereringen kommer att be dig ange ett lösenord. Du använder samma lösenord för båda nycklarna och väljer ett starkt lösenord.

Har du redan nycklar kan du konvertera dem till det nya formatet:

ssh-keygen -o –a65 -p -f ~/.ssh/id_rsa

Kör kommandot en gång för varje nyckel. Kommandot fungerar även för att lägga på en lösenordsfras om du har varit oförsiktig och sparat din privata nyckel utan lösenordsfras. För att kontrollera nyckellängden kan du köra det första kommandot igen. Du bör få ett resultat som liknar detta:

~$ for file in ~/.ssh/*.pub; do echo $file; ssh-keygen -l -f $file; done

/home/mfalkvidd/.ssh/id_ed25519.pub

256 fb:e3:1f:a6:ca:01:61:49:cc:cf:b9:0b:5f:2b:80:91 /home/mfalkvidd/.ssh/id_ed25519.pub (ED25519)

/home/mfalkvidd/.ssh/id_rsa.pub

2048 8c:1e:d6:ac:26:81:42:bb:31:d6:59:b7:23:51:63:ec /home/mfalkvidd/.ssh/id_rsa.pub (RSA)

Installera nyckel

För att kunna logga in med dina nya nycklar behöver du kopiera dem till de aktuella servrarna:

ssh-copy-id användare@server

Skriv in lösenordet för din användare på servern. När kopieringen är klar loggar du in på maskinen via SSH för att verifiera att du inte behöver ange lösenordet. Fun-gerar detta kan du stänga av möjligheten att logga in med lösenord genom att lägga in följande i konfigurationsfilen (/etc/ssh/sshd_config på de flesta system):

PasswordAuthentication no

Du har nu en server som inte tillåter inloggning via lösenord. Det innebär att ingen kommer att kunna logga in på servern genom att gissa lösenord.

De lokala nycklarna är skyddade mot lösenordsgissningar om någon skulle lyckas få tag på dem.

Konfigurera SSH-agent

Detta program håller reda på de privata nycklarna så att du bara behöver låsa upp dem en gång per session. Du kan själv ange hur länge en session ska vara, undertecknad har valt ett dygn.

Den kod du laddar ned från vår webbplats placerar du sist i bashrc-filen i din hemkatalog. Koden kommer att köras automatiskt varje gång du startar ett nytt skal. Först kontrolleras om SSH-agent redan har startats. I så fall läses några miljövariabler in som talar om för SSH var agenten finns. Skulle agenten inte vara aktiv startas den av skriptet som sedan läser in miljövariablerna.

Därefter kontrolleras om SSH-agenten har laddat några nycklar. Finns inga nycklar laddas nycklarna in och du får en fråga om lösenord (eftersom nycklarna behöver dekrypteras).

Skulle du logga in på en server och får frågan om lösenord har sessionen tagit slut. Du kan då öppna en ny terminal för att starta inläsningen eller bara köra kommandot nedan:

unlock-ssh

Ladda ner skriptet här!

Texten publicerades ursprungligen i Datormagazin nr 5, 2016

Skriv ett svar

Skriv din kommentar
Ange ditt namn här