SSH maakt het mogelijk om op een versleutelde manier in te loggen op een andere computer, en op afstand commando’s op de andere computer uit te voeren via een shell. Omdat ssh met encryptie werkt, is het voor eventuele afluisteraars, die de (internet)verbinding aftappen, zo goed als onmogelijk om wachtwoorden of commando’s te achterhalen (bron: https://nl.wikipedia.org/wiki/Secure_Shell). Inloggen via een SSH verbinding gaat met het commando
ssh user@remotehost
Vervolgens dien je een wachtwoord op te geven om de verbinding te maken.
Op servers waar je veel via ssh moet inloggen is het echter handiger om dit zonder wachtwoord prompt te doen. Dit kan door een RSA Key pair aan te maken. Bovendien is het een kleine moeite om deze te installeren op de server. Dit gaat als volgt:
1. Genereer een RSA Key pair
De eerste stap is het generen van een RSA key pair met het volgende commando:
ssh-keygen -t rsa
Na dit commando worden er 3 vragen gesteld die alle leeg dienen te worden gelaten. Op deze manier wordt er een publieke (~/.ssh/id_rsa.pub) en een private key (~/.ssh/id_rsa) gegenereerd op jouw client. Deze 2 keys zijn nodig om een beveiligde verbinding op te zetten. De publieke key mag je aan op elke server plaatsen, echter de private key dien je alleen op je eigen machine te gebruiken.
2. Kopieer de publieke key naar de server
Heb je een RSA Key pair aangemaakt dan dient de publieke key naar de server moeten worden gekopieerd. Dit gaat met het volgende commando:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
Je dient hierna dan nog wel je wachtwoord op te geven (voor de laatste keer dan). Als het goed is jouw public key in het bestand ~/.ssh/authorized_keys te vinden.
3. Log in zonder wachtwoord op de remote host
Log nu uit en log weer in op de server.
ssh user@remotehost
Als het goed is wordt er nu niet om een wachtwoord gevraagd. Dan doet de RSA Key pair de rest.
Wat als het niet werkt?
Nu kan het soms voorkomen dat je alsnog via ssh een wachtwoord moet inloggen. Dan is er met de configuratie is mis gegaan. Hieronder vind je de meeste voorkomende problemen en oplossingen.
- Kijk of jouw public key in het bestand ~/.ssh/authorized_keys te vinden is.
- Kijk of de rechten op de directory ~/.ssh op de remote host op 700 staan.
- Kijk of de rechten op de file ~/.ssh/authorized_keys op de remote host op 600 staan.