Secure Shell is de meest populaire manier om in te loggen op een externe Linux-server of desktop. Door deze tool te gebruiken, krijgt u via een beveiligde tunnel toegang tot de opdrachtregel op een externe computer. Uit de doos typt u het wachtwoord van de externe gebruiker. Hoewel deze methode nog steeds veiliger is dan de oudere (zoals telnet), kun je deze nog veiliger maken met SSH Key Authentication.
Wat is sleutelverificatie?
Stel je voor dat je een slot hebt en de enige manier om dat slot te openen is met een specifieke sleutel waarvan het slot weet dat het van jou is. Hoe weet het slot dat de sleutel van jou is? Omdat de sleutel een handtekening bevat die uniek is voor jou. Binnen het slot is een bijpassende handtekening die de sleutel gebruikt ter vergelijking. Als de handtekeningen overeenkomen, gaat het slot open. Als de sleutel past, maar de handtekeningen niet overeenkomen, gaat het slot niet open. Hoe SSH-sleutelauthenticatie in het echte leven werkt, is dat u een sleutelpaar maakt (dat een privé- en openbare code bevat) en de openbare sleutel kopieert naar de server waarop u wilt inloggen. Als u probeert in te loggen met sleutelverificatie en de server heeft niet de openbare sleutel die overeenkomt met uw privésleutel, dan krijgt u geen toegang.
Een SSH-sleutelpaar genereren
Het eerste dat u moet doen, is een SSH-sleutelpaar genereren, dat de codes maakt die uw computer zal gebruiken om aanmeldingen te verifiëren. Hier is hoe het te doen.
-
Open een terminalvenster op uw bureaublad.
-
Geef het commando: ssh-keygen
-
Geef de sleutel een naam en locatie. druk op Enter/Return op uw toetsenbord om de standaardlocatie te gebruiken, die Terminal zal weergeven.
-
Voer een wachtwoordzin voor de sleutel in en verifieer deze. Zorg ervoor dat deze wachtwoordzin sterk en uniek is.
-
Je hebt nu een SSH-sleutelpaar. U vindt deze twee bestanden in ~/.ssh, en hun namen zullen zijn:
- id_rsa – De persoonlijke sleutel.
- id_rsa.pub – De openbare sleutel.
Kopieer uw openbare sleutel naar de externe machine
Vervolgens moet u het bestand met de openbare sleutel kopiëren naar de externe computer waarop u zich wilt aanmelden. Voer hiervoor het commando in: ssh-copy-id USER@REMOTE_IP
type=”code”> Waarbij USER een gebruikersnaam is op de externe machine en REMOTE_IP het IP-adres van de externe machine is.
Als dit de eerste keer is dat u een beveiligde shell op de externe machine uitvoert, moet u de verbinding bevestigen. Anders ziet u een prompt om het gebruikerswachtwoord in te voeren op de externe computer. Nadat u met succes uw externe wachtwoord hebt getypt, bent u klaar om de verbinding te testen.
De verbinding testen
Test de verbinding door de opdracht te geven: ssh USER@REMOTE_IP
type=”code”> Waarbij USER een gebruikersnaam is op de externe machine en REMOTE_IP het IP-adres van de externe machine is.
U ontvangt een prompt voor de wachtwoordzin voor het SSH-sleutelpaar. Nadat u de juiste wachtwoordzin voor de sleutel hebt getypt, krijgt u toegang tot de externe machine.
Wachtwoordverificatie uitschakelen
U kunt nog een stap verder gaan met de beveiliging door wachtwoordverificatie uit te schakelen. Met deze configuratie is de enige manier om toegang te krijgen tot de externe machine vanaf een machine die de privésleutel van het overeenkomende paar bevat. Met andere woorden, geen sleutelpaar, geen toegang. Om wachtwoordverificatie uit te schakelen, logt u in op de externe machine en geeft u de opdracht: sudo nano /etc/ssh/sshd_config
type=”code”> Zoek in dit bestand naar de regel: #PasswordAuthentication yes
type=”code”> Verander die regel in: PasswordAuthentication no
type=”code”> Sla het bestand op en sluit het. Start SSH opnieuw met het commando: sudo systemctl restart sshd
type=”code”>
Als u nu probeert in te loggen op die externe machine vanaf een desktop (of server) die geen privésleutel bevat, zal het systeem u de toegang weigeren.