Gepubliceerd
Als je SSH in Linux moet gebruiken om andere computers op afstand te beheren, zal deze handleiding je daarbij helpen.
In het huidige onderling verbonden landschap is de mogelijkheid om computers vanuit verschillende geografische locaties te beheren uitgegroeid van luxe tot noodzaak. Er zijn verschillende manieren om dit te doen, afhankelijk van het gebruikte besturingssysteem. Voor Linux-gebaseerde systemen, de meest gebruikelijke en veiligste manier om uw pc op afstand te beheren, is door gebruik te maken van SSH (of Veilige schaal).
Laten we eens kijken hoe we SSH op Linux kunnen gebruiken om verbinding te maken met andere computers.
Essentiële eerste stappen
Voordat je succesvol verbinding kunt maken met een andere Linux-computer met SSH, moet je aan de volgende vereisten voldoen:
- De doelcomputer moet ingeschakeld blijven en verbonden blijven met een netwerk.
- De benodigde client- en serversoftware moet worden geïnstalleerd en geactiveerd.
- U moet het IP-adres of de hostnaam van de doelmachine weten.
- Er moeten passende machtigingen voor externe toegang aanwezig zijn.
- Firewallconfiguraties op de externe computer moeten laat de inkomende verbinding toe.
Als u toegang heeft tot een Linux-computer die bijvoorbeeld wordt beheerd door uw webhostingbedrijf, hadden zij daar al voor moeten zorgen. Vervolgens moet u mogelijk een basissoftware-installatie uitvoeren op uw eigen Linux-computer.
SSH gebruiken op Linux: een praktische gids
Voor het tot stand brengen van een functionele SSH-verbinding zijn zowel client- als serversoftwaremodules vereist. OpenSSH fungeert als een open source alternatief voornamelijk voor Linux-platforms.
Om de juiste OpenSSH-client te installeren, heeft u terminaltoegang op uw lokale computer nodig. Houd er rekening mee dat Ubuntu-systemen geen vooraf geïnstalleerde SSH-server hebben.
Een OpenSSH-client installeren
Voordat u zich verdiept in het installatieproces, moet u controleren of de SSH-client er nog niet is. Om dat te doen, gewoon open een terminalvenster. U kunt zoeken naar “terminal” of op drukken ctrl+alt+t op je toetsenbord.
Eenmaal in uw terminalvenster test u de aanwezigheid van de SSH-client door het volgende te typen:
$ ssh
Als op de Linux-computer al een SSH-client is geïnstalleerd, ziet u de volgende informatie over het scherm scrollen.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Als u in plaats daarvan een klacht ontvangt dat het bestand niet wordt gevonden, moet u doorgaan met de installatie van de OpenSSH-client. Gelukkig is dit eenvoudig genoeg.
Op Ubuntu en andere op Debian gebaseerde installaties voert u gewoon de volgende opdracht uit in Terminal:
$ sudo apt install openssh-client
Als je Fedora of een andere distributie dat gebruikt jammie in plaats van geschikt, voer gewoon deze opdracht uit:
$ sudo yum -y install openssh-clients
Nieuwere Fedora systemen kunnen gebruiken dnf in plaats van. Als dat op jou lijkt, is het magische commando:
$ sudo dnf install -y openssh-clients
Volg de instructies op het scherm en u kunt binnen een mum van tijd aan de slag.
Een SSH-verbinding tot stand brengen
Zodra je zeker weet dat de SSH-client op je Linux-computer is geïnstalleerd, is het tijd om die eerste verbinding tot stand te brengen. Terwijl u zich nog in het terminalvenster bevindt, voert u de volgende opdracht uit:
$ ssh username@host_ip_address
Als gebruikersnamen overeenkomen op lokale en externe machines, voert u eenvoudigweg het volgende in:
$ ssh host_ip_address
De eerste keer dat u verbinding maakt, wordt u begroet met de vraag of u verbinding wilt blijven maken met de onbekende computer. Typ op dit punt Ja en doorgaan.
Toets uw wachtwoord in, waarbij u er rekening mee houdt dat u tijdens het invoeren geen feedback op het scherm krijgt. Als u klaar bent, moet u ingelogd zijn op de externe server en kunt u beginnen met het uitvoeren van de taak die u op die computer moet uitvoeren.
SSH begrijpen: een overzicht op hoog niveau
Secure Shell, of SSH – ook wel Secure Socket Shell genoemd – is een protocol dat veilige connectiviteit met externe servers of computers mogelijk maakt via een op tekst gebaseerde interface.
Na authenticatie van een beveiligd SSH-kanaal wordt een shell-sessie geïnitialiseerd, waardoor opdrachtregelinteractie vanaf uw lokale machine mogelijk is.
Dit protocol is bekend en geliefd bij systeem- en netwerkbeheerders, maar ook bij iedereen die veilig machinebeheer op afstand nodig heeft.
Mechanica van SSH-functionaliteit
Het opzetten van een SSH-kanaal vereist de samenwerking van twee cruciale componenten: een client-side applicatie en de server-side tegenhanger. De clienttoepassing initieert de verbinding door referenties voor de externe host op te geven.
Indien geverifieerd, creëert de software een gecodeerd kanaal tussen de twee computers. Op de externe machine scant een SSH-daemon voortdurend een aangewezen TCP/IP-poort op mogelijke verbindingsverzoeken.
Bij ontvangst geeft de daemon zijn software- en protocolmogelijkheden door, en wisselen beide entiteiten identificatiegegevens uit. Er ontstaat een gecodeerde sessie als de inloggegevens overeenkomen, voornamelijk via SSH-protocol versie 2.
Geavanceerd SSH-gebruik: uw coderingssleutel opslaan om te voorkomen dat u een wachtwoord invoert
Laten we nu zeggen dat u dit wilt vermijden voer uw wachtwoord in elke keer dat u zich aanmeldt bij een externe server. Voor een veilige, wachtwoordvrije verbinding met een andere computer is een SSH-sleutel (Secure Shell) onmisbaar.
Misschien beschikt u al over zo'n sleutel, maar het genereren van een nieuwe is nooit een slecht idee. Een SSH-sleutel, afkomstig van uw lokale computer, is verdeeld in twee afzonderlijke elementen: een vertrouwelijke, privésleutel (die nooit openbaar mag worden gemaakt) en zijn publieke tegenhanger. Deze openbare sleutel wordt vervolgens verspreid naar alle externe systemen waarop u moet inloggen.
Sommige mensen kiezen misschien voor één SSH-sleutel voor een groot aantal toepassingen, variërend van systeemaanmeldingen op afstand tot GitLab. Eén sleutel om ze allemaal te regeren, zou je kunnen zeggen. Mijn aanpak is echter gedetailleerder. Ik gebruik verschillende toetsen, elk ontworpen voor een specifieke subset van taken.
Ik gebruik bijvoorbeeld een speciale sleutel voor lokale machines binnen mijn thuisnetwerk, nog een exclusieve sleutel sleutel voor webservers onder mijn beheer, en nog een unieke sleutel voor interactie met Git gastheren.
Een nieuw SSH-sleutelpaar maken
Zo kunt u een nieuwe SSH-sleutel maken en deze vervolgens kopiëren naar de externe server waarvoor u deze wilt gebruiken. Maak eerst de sleutel met behulp van ssh-keygen.
$ ssh-keygen -t ed25519 -f /.ssh/lan
De vlag -T specificeert het type sleutel dat moet worden gemaakt, zodat de codering hoger is dan de standaardwaarde. De -F flag stelt de bestandsnaam en locatie van de sleutel in.
Wanneer u deze opdracht geeft, wordt u gevraagd een wachtwoord voor de sleutel te maken. Dat wachtwoord blijft, als u het instelt, lokaal en wordt niet over het netwerk verzonden.
Uw SSH-sleutel naar de externe server verzenden
Vervolgens moet u die beveiligingssleutel naar de externe server sturen. Om dit te bereiken, geeft u gewoon deze opdracht:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
U wordt gevraagd om uw aanmeldingswachtwoord op de externe host. Zodra het proces is voltooid, wordt uw sleutel echter op die computer geïnstalleerd.
U kunt dit testen door te proberen in te loggen op de externe computer. Wanneer u opnieuw een ssh-verbinding met de externe host maakt, wordt u om de wachtwoordzin voor de sleutel gevraagd, als u die heeft ingesteld. Dit is niet uw inlogwachtwoord, onthoud. Het is de wachtwoordzin die specifiek is voor die SSH-sleutel.
Op veel distributies, waaronder Linux, wordt deze wachtwoordzinprompt geopend als een dialoogvenster. Zoals u in het onderstaande voorbeeld kunt zien, kunt u een vakje aanvinken zodat de Linux-computer de wachtwoordzin onthoudt. Dat zal echter de veiligheid van de sleutel verminderen.
Nadat u de wachtwoordzin voor uw SSH-sleutel heeft ingevoerd, hoeft u deze pas opnieuw in te typen nadat u zich hebt afgemeld bij de lokale computer.
Andere manieren om SSH te gebruiken
Nu je dat allemaal hebt gedaan, kun je SSH gaan gebruiken voor externe toegang tot andere Linux- of Unix-computers. Het gaat natuurlijk niet alleen om het bereiken van de opdrachtprompt.
SSH biedt ook een veilige manier om bestanden tussen computers over te dragen zonder gebruik te maken van FTP. U kunt Secure Copy of scp gebruiken om verplaats die bestanden. Als je een Windows 11-gebruiker bent en SSH moet gebruiken, heb je geluk omdat de client vooraf is geïnstalleerd. Jij kan zelfs genereren en gebruiken SSH-sleutels in Windows 11.