Konvertera SSH nycklar

Har du skapat SSH-nycklar med Putty på ett windows system? Då har du säkert en nyckel vars filnamn slutar med .ppk, eller hur? När du senare försöker använda den på din Linuxmaskin så fungerar det inte när du försöker använda den för att logga in.

Så här löser du det problemet

Installera putty-tools. Det gör du med apt-get install putty-tools, yum install puttu eller något liknande. Det beror lite på vilken dist du använder.

I det här exemplet förutsätter jag att din nyckel heter id_dsa.ppk

Skapa den privata nyckeln:

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

Skapa den publika nyckeln:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

Flytta nycklarna till ~/.ssh och sätt rättigheter

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

Nu är det fixat, testa genom att ansluta till din server..  ssh server.com

Använda putty-nyckel i linux

Jag vet inte om det är bara jag eller om det finns andra… men jag har skapat nycklar från putty under windows för att logga in på en debian server utan lösenord.

Nu tänkte jag använda nyckeln och logga in från min ubuntu maskin och stötte då på patrull. Jag lade nyckeln under .ssh, satte rättigheter etc. Fungerade inte, jag fick en fråga om lösenord på min nyckel trots att jag inte har något lösen på nyckel.

 

Det löser man enkel med en ”apt-get install putty-tool” och sedan ”puttygen nyckel.ppk -O private-openssh -o id_rsa” Stoppa in din nya id_rsa under .ssh och sen fungerar det 🙂

SSH Forward

Nu vet jag inte om det heter agent forward men det är ett bra ord att använda tror jag.

Tänk dig att du sitter på en dator, server1. Du behöve logga in på server3 med ssh, problemet är att bara server2 är exponerad mot internet.

Så här

forward1

 

 

 

 

 

Om du använder putty på din server1 dator (jag förutsätter att den är windows men det går lika bra med linux, förutom att du använder inte putty på den)

Skapa en anslutning till server2 i putty och under SSH inställningarna under remote command skriver du in ”ssh -A -t server3”, så här:

forward2

 

 

 

 

 

 

 

Då kommer det magiska att hända.

När du från server1 ansluter till server2 så kommer du att öppna ett shell på server3. Om du sedan använder nycklar istället för lösenords-login så blir allt ett snäpp säkrare och smidigare.

Visst är det coolt 🙂