Wat is SSH?
SSH betekent Secure Shell. Met SSH kun je op een veilige manier toegang krijgen tot machines op afstand, omdat de verbinding versleuteld is. Met het ssh-commando vanuit de Linux-terminal kunnen we verbinding maken met Linux-servers op afstand en werken alsof het onze eigen computer is. Aan het einde van deze handleiding zou je een volledig begrip moeten hebben van hoe je SSH gebruikt om verbinding te maken met een server op afstand in Ubuntu.
Syntaxis
De syntaxis is de regel voor hoe je het ssh-commando kunt gebruiken. Je kunt de syntaxis anders indelen, maar er moet een directe indeling worden gevolgd. Hieronder staat een syntaxisvoorbeeld voor het gebruik van het ssh-commando:
|
1 |
ssh remote_host |
De domeinnaam of het IP-adres waarmee je verbinding wilt maken is de remote_host, zoals weergegeven in het bovenstaande commando. Deze syntaxis gaat ervan uit dat je gebruikersnaam op het systeem op afstand en je lokale systeem hetzelfde zijn. Mochten de gebruikersnamen echter niet hetzelfde zijn, dan kun je dit aangeven met dit commando:
|
1 |
ssh remote_username@remote_host |
Je moet je identiteit verifiëren door direct een wachtwoord op te geven wanneer je verbinding maakt met de server. Typ het commando exit om terug te gaan naar je lokale sessie.
Hoe configureer je SSH
Het belangrijkste sshd-configuratiebestand in Ubuntu bevindt zich op /etc/ssh/sshd_config. Als je de SSH-configuratie wijzigt, veranderen de instellingen van de SSHD-server automatisch. Zorg er vóór elke configuratie voor dat je een back-up maakt van de huidige versie van het bestand met dit commando:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Gebruik een tekstverwerker om het te openen:
|
1 |
sudo nano /etc/ssh/sshd_config |
Je kunt de meeste parameters in dit bestand ongemoeid laten. Er zijn echter een paar dingen waar je op moet letten:
|
1 |
Port 22 |
De poortdeclaraties geven de poort aan waarop de SSHD-server wacht op verbindingen. De standaardwaarde is 22. Tenzij er specifieke redenen zijn, hoef je deze instelling niet te wijzigen:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
De host-sleuteldeclaratie geeft aan waar de globale host-sleutel zich bevindt:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Het niveau van de logs die moeten worden bijgehouden, wordt met deze twee items aangegeven. Als je problemen hebt met het gebruik van SSH, is het verhogen van het aantal logs een uitstekende manier om het probleem te identificeren:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Deze opties definiëren informatie voor de login om ongeautoriseerde login te voorkomen wanneer de configuratiebestanden onveilig zijn:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Deze parameterconfiguraties worden aangeduid als X11-doorstuurfuncties. Op deze manier kun je de GUI van het systeem op afstand weergeven op het lokale systeem. Je moet deze optie inschakelen op de server terwijl je verbinding maakt met de optie -X naar de SSH-client.
Sla na het aanbrengen van de wijzigingen het bestand op en sluit het door op CTRL-X en Y te drukken en druk vervolgens op Enter. Als je instellingen wijzigt in / etc / ssh / sshd_config, moet je de sshd-server herstarten om de wijziging uit te voeren:
|
1 |
sudo service ssh restart |
Voor systemd-systemen zoals Ubuntu 16.04 of Debian Jessie gebruik je dit commando:
|
1 |
sudo systemctl restart ssh |
Test je wijzigingen grondig om er zeker van te zijn dat alles perfect werkt. Je kunt het beste een aantal sessies actief houden als je wijzigingen aanbrengt. Op deze manier kun je de configuratie herstellen indien nodig.
Hoe log je in op SSH met sleutels? Het is goed om met een wachtwoord in te loggen op een systeem op afstand. Het is echter het beste om authenticatie op basis van sleutels in te stellen.
Wat is authenticatie op basis van sleutels?
Authenticatie op basis van sleutels maakt twee sleutelparen aan, een privé- en een openbare sleutel genoemd. De privésleutel bevindt zich op de computer van de gebruiker en is beveiligd en geheim gehouden. De openbare sleutel kan aan iedereen beschikbaar worden gesteld of worden opgeslagen op elke server waartoe u toegang wilt krijgen. Als u verbinding probeert te maken met een sleutelpaar, gebruikt de server de openbare sleutel om een bericht voor de computer van de gebruiker te genereren. De gebruiker kan het bericht alleen lezen met een privésleutel. De computer van de gebruiker stuurt vervolgens een reactie terug naar de server en de server weet dat de gebruiker legitiem is. Na het instellen van de sleutel wordt het hele proces automatisch op de achtergrond voltooid.
Hoe u SSH-sleutels aanmaakt
SSH-sleutels moeten worden gegenereerd op de computer vanwaar u wilt inloggen. Dit is meestal uw lokale computer. Voer het volgende in op de opdrachtregel:
|
1 |
ssh-keygen -t rsa |
Accepteer vervolgens de standaardwaarden door op de ENTER-TOETS te drukken. Hiermee worden uw sleutels gegenereerd in ~/.ssh/id_rsa.pub en ~/.ssh/id_rsa. Typ vervolgens de onderstaande opdracht om naar de .ssh-map te gaan:
|
1 |
cd ~/.ssh |
Dit zijn de bestandsrechten:
|
1 |
ls -l |

Zoals u kunt zien, kan alleen de eigenaar het id_rsa-bestand lezen en schrijven. Daarom moet u het veilig bewaren. U kunt het id_rsa.pub-bestand echter wel delen en de juiste machtigingen voor deze activiteit hebben. De volgende stap is om de openbare sleutel naar de server over te dragen met behulp van deze syntaxis:
|
1 |
ssh-copy-id remote_host |
Dit start een SSH-sessie en u moet een wachtwoord gebruiken voor authenticatie. Na het invoeren van het wachtwoord wordt uw openbare sleutel gekopieerd naar het geautoriseerde sleutelbestand van de server’s, zodat u de volgende keer zonder wachtwoord kunt inloggen.
Wachtwoordauthenticatie uitschakelen
Als er een SSH-sleutel is gegenereerd, kunt u de beveiliging van de server verbeteren door authenticatie met alleen een wachtwoord uit te schakelen. U kunt inloggen op de server met de privésleutel met de openbare sleutel op de server geïnstalleerd, in plaats van de console te gebruiken.
Opmerking: Zorg ervoor dat u de openbare sleutel op de server hebt geïnstalleerd voordat u met deze stap doorgaat. Als dit niet het geval is, wordt u geblokkeerd!
Open het sshd-configuratiebestand met deze opdracht:
|
1 |
sudo nano /etc/ssh/sshd_config |
Zoek de regel met PasswordAuthentication en verwijder het commentaarteken door de # aan het begin te verwijderen. Vervolgens kunt u de waarde wijzigen in “no”:
|
1 |
PasswordAuthentication no |
De PubkeyAuthentication en ChallengeResponseAuthentication zijn standaard ingesteld en zouden er als volgt uit moeten zien:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
U mag deze twee instellingen niet wijzigen. Sla daarna het bestand op en sluit het zodra u de wijzigingen hebt aangebracht. Gebruik vervolgens de onderstaande opdracht om de SSH-daemon opnieuw te starten:
|
1 |
sudo systemctl restart ssh |
Ten slotte hebt u de wachtwoordauthenticatie uitgeschakeld en is uw server alleen nog toegankelijk via SSH-sleutelauthenticatie.
Conclusie
In deze handleiding hebben we u laten zien hoe u SSH gebruikt om veilig verbinding te maken met een externe server in Ubuntu. Leren hoe u SSH gebruikt is fundamenteel als u een systeembeheerder bent, dus nadat u deze handleiding onder de knie hebt, kunt u verdergaan met meer geavanceerde functionaliteiten van SSH.
Veel computerplezier!
Reacties
Nog geen reacties. Wees de eerste.