OpenSSH Server

Introduction

OpenSSH is een krachtige verzameling tools voor de afstandsbediening van en overdracht van gegevens tussen netwerkcomputers. U leert ook over enkele van de configuratie-instellingen die mogelijk zijn met de OpenSSH server-toepassing en hoe u deze kunt wijzigen op uw Ubuntu-systeem.

OpenSSH is een vrij verkrijgbare versie van de Secure Shell (SSH) protocolfamilie van tools voor het op afstand besturen of overdragen van bestanden tussen computers. Traditionele tools die gebruikt worden om deze functies te vervullen, zoals telnet of rcp, zijn onveilig en sturen het wachtwoord van de gebruiker in duidelijke tekst wanneer gebruikt. OpenSSH biedt een server daemon en client tools om veilige, versleutelde afstandsbediening en bestandsoverdracht operaties te vergemakkelijken, effectief ter vervanging van de legacy tools.

de OpenSSH server component, sshd, luistert continu naar clientverbindingen van alle clienthulpprogramma ‘ s. Wanneer een verbindingsaanvraag optreedt, stelt sshd de juiste verbinding in, afhankelijk van het type client tool dat verbinding maakt. Als de externe computer bijvoorbeeld verbinding maakt met de SSH-clienttoepassing, stelt de OpenSSH-server na verificatie een sessie voor extern beheer in. Als een externe gebruiker verbinding maakt met een OpenSSH server met scp, start de OpenSSH server daemon een veilige kopie van bestanden tussen de server en de client na verificatie. OpenSSH kan veel verificatiemethoden gebruiken, waaronder plain password, public key en Kerberos tickets.

installatie

installatie van de OpenSSH client en server applicaties is eenvoudig. Om de OpenSSH-clienttoepassingen op uw Ubuntu-systeem te installeren, gebruikt u dit commando op een terminalprompt:

sudo apt install openssh-client

om de OpenSSH-servertoepassing en gerelateerde ondersteuningsbestanden te installeren, gebruikt u dit commando op een terminalprompt:

sudo apt install openssh-server

configuratie

u kunt het standaardgedrag van de OpenSSH-servertoepassing, sshd, door het bestand /etc/ssh/sshd_configte bewerken. Voor informatie over de configuratie richtlijnen die in dit bestand worden gebruikt, kunt u de juiste manual pagina bekijken met het volgende commando, uitgegeven op een terminal prompt:

man sshd_config

Er zijn veel richtlijnen in het sshd configuratie bestand die zaken als communicatie-instellingen en authenticatie modi regelen. De volgende zijn voorbeelden van configuratierichtlijnen die kunnen worden gewijzigd door het /etc/ssh/sshd_config bestand te bewerken.

Tip

voordat u het configuratiebestand bewerkt, moet u een kopie maken van het originele bestand en het beschermen tegen schrijven, zodat u de oorspronkelijke instellingen als referentie hebt en zo nodig opnieuw kunt gebruiken.

kopieer het /etc/ssh/sshd_config bestand en bescherm het tegen schrijven met de volgende commando ‘ s, uitgegeven op een terminal prompt:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chmod a-w /etc/ssh/sshd_config.original

aangezien het verliezen van een SSH-server kan betekenen dat u de weg kwijt bent om een server te bereiken, Controleer de configuratie na het wijzigen ervan en voordat u de server opnieuw opstart:

sudo sshd -t -f /etc/ssh/sshd_config

De volgende zijn voorbeelden van configuratie instellingen u kunt wijzigen:

  • Om uw OpenSSH te luisteren op TCP poort 2222 in plaats van de standaard TCP poort 22, wijziging van de Haven richtlijn als zodanig:

Poort 2222

  • Om uw OpenSSH-server weergeven van de inhoud van de /etc/issue.net bestand als een pre-login banner toe te voegen of te wijzigen regel in het /etc/ssh/sshd_config bestand:

Banner /etc/issue.net

na het maken van wijzigingen in de /etc/ssh/sshd_config bestand, Sla het bestand op en herstart de SSHD server applicatie om de wijzigingen door te voeren met behulp van het volgende commando op een terminal prompt:

sudo systemctl restart sshd.service

waarschuwing

veel andere configuratie-instructies voor sshd zijn beschikbaar om het gedrag van de servertoepassing aan te passen aan uw behoeften. Wees echter geadviseerd, als uw enige manier van toegang tot een server ssh is, en u een fout maakt in het configureren van sshd via het /etc/ssh/sshd_config bestand, kunt u merken dat u uitgesloten bent van de server bij het opnieuw opstarten. Bovendien kan de SSHD-server weigeren om te starten als er een onjuiste configuratierichtlijn wordt opgegeven, dus wees extra voorzichtig met het bewerken van dit bestand op een externe server.

SSH sleutels

SSH staan authenticatie toe tussen twee hosts zonder de noodzaak van een wachtwoord. SSH-sleutel authenticatie gebruikt een private sleutel en een publieke sleutel.

om de sleutels te genereren, voer vanuit een terminal prompt:

ssh-keygen -t rsa

Dit zal de sleutels genereren met behulp van het RSA-algoritme. Op het moment van dit schrijven, zullen de gegenereerde sleutels 3072 bits hebben. U kunt het aantal bits wijzigen met de optie -b. Om bijvoorbeeld sleutels met 4096 bits te genereren, kunt u het volgende doen:

ssh-keygen -t rsa -b 4096

tijdens het proces wordt u gevraagd om een wachtwoord. Druk gewoon op Enter wanneer u wordt gevraagd om de sleutel te maken.

standaard wordt de publieke sleutel opgeslagen in het bestand ~/.ssh/id_rsa.pub, terwijl ~/.ssh/id_rsa de private sleutel is. Kopieer nu het id_rsa.pub bestand naar de remote host en voeg het toe aan ~/.ssh/authorized_keys door het invoeren van:

ssh-copy-id username@remotehost

ten slotte, controleer de permissies op het authorized_keys bestand, alleen de geverifieerde gebruiker moet lezen en schrijven rechten. Als de machtigingen niet correct zijn, wijzigen ze door:

chmod 600 .ssh/authorized_keys

u zou nu in staat moeten zijn om naar de host te SSHEN zonder om een wachtwoord te worden gevraagd.

importeer sleutels van publieke keyservers

tegenwoordig hebben veel gebruikers al ssh sleutels geregistreerd bij services zoals launchpad of github. Deze kunnen eenvoudig worden geïmporteerd met:

ssh-import-id <username-on-remote-service>

het voorvoegsel lp: is impliciet en betekent ophalen van launchpad, het alternatieve gh: zal het gereedschap van github laten ophalen.

tweefactorauthenticatie met U2F/FIDO

OpenSSH 8.2 Ondersteuning toegevoegd voor U2F / Fido hardware authenticatie apparaten. Deze apparaten worden gebruikt om een extra beveiligingslaag te bieden bovenop de bestaande sleutelgebaseerde authenticatie, omdat het hardwaretoken aanwezig moet zijn om de authenticatie te voltooien.

Het is zeer eenvoudig te gebruiken en in te stellen. De enige extra stap is het genereren van een nieuw toetsenbord dat kan worden gebruikt met het hardware-apparaat. Hiervoor kunnen twee sleuteltypen worden gebruikt: ecdsa-sk en ed25519-sk. De eerste heeft bredere hardware-ondersteuning, terwijl de laatste misschien een recenter apparaat nodig.

zodra het toetsenbord is gegenereerd, kan het worden gebruikt zoals u normaal elk ander type sleutel in openssh zou gebruiken. De enige vereiste is dat om de private sleutel te gebruiken, het U2F apparaat aanwezig moet zijn op de host.

bijvoorbeeld, sluit het U2F-apparaat aan en genereer een toetsenbord om ermee te gebruiken:

$ ssh-keygen -t ecdsa-skGenerating public/private ecdsa-sk key pair.You may need to touch your authenticator to authorize key generation. <-- touch deviceEnter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa_sk): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa_skYour public key has been saved in /home/ubuntu/.ssh/id_ecdsa_sk.pubThe key fingerprint is:SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo ubuntu@focal

breng nu gewoon het publieke deel naar de server naar ~/.ssh/authorized_keys en u bent klaar om te gaan:

$ ssh -i .ssh/id_ecdsa_sk [email protected] user presence for key ECDSA-SK SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo <-- touch deviceWelcome to Ubuntu Focal Fossa (GNU/Linux 5.4.0-21-generic x86_64)(...)[email protected]:~$

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *