SFTP met public key authentication in Windows
In dit stuk beschrijf ik hoe je vanuit Windows kunt inloggen op een UNIX-server (Linux, Mac OS X, etc.) met SFTP en public key authentication.
Waarom niet gewoon inloggen met een wachtwoord
Voor het inloggen op mijn server met SFTP gebruik ik altijd public key authentication. Dit is veiliger dan met wachtwoorden. Als ik het inloggen met wachtwoorden op mijn server toe sta dan gaan hackers allerlei gebruikersnaam en wachtwoordcombinaties uitproberen om in te loggen en misschien gokken ze een keer goed… Bij public key authenticatie gaat het inlogproces met bijna niet te kraken sleutels (keys) en is de kans op zo’n goede ‘gok’ bijna nul.
Voor meer informatie over public key authenticatie/encryptie kijk op http://nl.wikipedia.org/wiki/Public_key.
Hoe doe je het
Als SFTP-programma gebruik ik WINSCP. Maar je kunt waarschijnlijk ook wel een ander FTP-programma gebruiken als deze SFTP met public key authentication ondersteund.
Sleutels genereren
Als je dit WINSCP installeert wordt ook het programma PuTTYgen geïnstalleerd (Als je in het startmenu naar WINSCP gaat zie je daar de map Sleutelhulpprogramma’s. In die map staat PuTTYgen).
PuTTYgen hebben we nodig om de benodigde keys/sleutels te genereren:
- Start PuTTYgen.
- Kies bij parameters SSH-2 RSA.
- Klik op Generate.
Het programma vraagt je nu de muis te bewegen boven het lege vlak om zo wat willekeurigheid te genereren.
Na een tijdje kom je in een nieuw scherm.
Je kunt een wachtwoordzin (password phrase) opgeven om de private sleutel te beveiligen. Als je hier geen zin opgeeft kun je straks direct inloggen op de server zonder een wachtwoord in te tikken. Maar dat betekent ook dat iedereen die bij je computer kan straks zonder probleem kan inloggen op de server. Stel voor de veiligheid daarom altijd een wachtwoordzin in!
- Type de wachtwoordzin in bij Passwordphrase. Maak er een echte zin van en niet alleen een woord. Dat is veiliger.
- Je kunt bij comment de sleutel eventueel een naam geven zodat je later weet welke sleutel dit ook al weer was.
- Bewaar de private sleutel op je computer door op de knop Save private key te drukken. (Bijv. als privaat.ppk in een map sleutels in mijn documenten)
- Kopieër de publieke sleutel uit het schermdeel waar Public key for pasting… bovenstaat. Plak dit bijv. in NotePad en bewaar het tekstbestand op je computer. De publieke sleutel wordt straks op de server geplaatst.
Publieke sleutel op de UNIX server installeren
De publieke sleutel moet nu op de server geïnstalleerd worden. Als je zelf niet bij de server kunt, mail de sleutel dan bijvoorbeeld naar de systeembeheerder. Je kunt dan deze paragraaf verder overslaan.
- Log in op de account waar je toegang toe wil krijgen.
- Kopiëer op de één of ander manier de publieke sleutel naar de server.
- Maak een map .ssh in de gebruikers directory van je account aan als deze nog niet bestaat. (let op dit is een verborgen bestand)
- Maak in de map het bestand authorized_keys aan als deze nog niet bestaat.
- Plak de private sleutel in het bestand authorized_keys. Zorg dat alles op één regel staat.
Inloggen met WINSCP
Je kunt nu op de server inloggen met WINSCP
- Open WinSCP
- Geef de url van de server op bij Adres doelcomputer.
- Geef de gebruikersnaam op van je account op de server.
- Kies de private sleutel (of privé sleutel) die je hebt aangemaakt.
- Klik op inloggen.
- Klik hier op JA.
- Geef de wachtwoordzin op.
Wat is het verschil?
Tags: public key authentication, puTTYgen, SFTP, WINSCP

1 december 2010 om 23:30
I always like this is type of article. Thank you.