Veilig Linux, maar zonder moeite
Gepubliceerd: Vrijdag 25 september 2009
Auteur:
Draai je Linux-servers, dan is er een grote kans dat je regelmatig via het netwerk op deze servers inlogt om onderhoud te plegen. Zoals elke zichzelf respecterende beheerder doe je dit natuurlijk met behulp van de Secure Shell (ssh), om te zorgen dat dit allemaal veilig en met encryptie gebeurt.
Jammer genoeg heeft ssh een paar nadelen, zeker als je het heel erg veel gebruikt om er bijvoorbeeld programma's als CVS of Subversion overheen te tunnelen. Elke keer dat je een verbinding maakt moet je namelijk opnieuw je wachtwoord intikken. Nou ja, tenzij je natuurlijk gebruik maakt van de echte kracht van SSH, namelijk het neerzetten van cryptografische sleutels van machines waarvandaan ingelogd mag worden.
Sleutels
Voor het gebruik van deze sleutels heeft SSH ondersteuning voor public-private key cryptography. Door de publieke sleutel op de server neer te zetten in het bestand $HOME/.ssh/authorized_keys, kan iedereen met de bijpassende privésleutel meteen inloggen. De sleutels scherm je af met een passphrase, waar om gevraagd wordt op het moment dat de sleutel wordt gebruikt. Het verschil met gewone wachtwoord-authenticatie is dat het niet hetzelfde wachtwoord is dat je gebruikt en dat je keys ook kunt delen.
Het nadeel aan deze methode is natuurlijk dat, hoewel je sleutels gebruikt, je nog steeds een passphrase moet intikken. Tenzij je gebruik maakt van sleutels zonder wachtwoord. Keys zonder wachtwoord zijn handig, maar iedereen die dan jouw private sleutel te pakken krijgt kan direct jouw identiteit aannemen en aan de slag. Oftewel, je wilt keys met een wachtwoord, maar je wilt wel dat niet iedereen misbruik kan maken van jouw key.
Agent
Gelukkig is hier een oplossing voor, genaamd "ssh-agent". Dit is een programma dat als een cache optreedt voor SSH sleutels. Op het moment dat een verbinding met een andere server wordt gemaakt, wordt ssh-agent geraadpleegd om te kijken of de juiste key waarmee je kunt inloggen al aanwezig is. Zo ja, dan wordt er ingelogd. Zo nee, dan worden de gebruikelijke manieren afgelopen.
Gebruik je GNOME, dan wordt in sommige distributies ssh-agent automatisch opgestart als je inlogt en kunnen GNOME applicaties via gnome-keyring er gebruik van maken. Het is ook mogelijk dat je zelf nog eerst de ssh-agent moet starten op het moment dat je inlogt. De instantie van ssh-agent kan gevonden worden via de environment. Als je het commando:
env | grep SSH
in je shell intikt als je ssh-agent hebt draaien, dan zie je onder andere waar de socket van ssh-agent staat.
De rubriek Tips & Tools biedt praktische informatie die IT-professionals in hun dagelijkse werk kunnen toepassen.
