openssh Server

introduktion

OpenSSH er en kraftfuld samling af værktøjer til fjernbetjening af og overførsel af data mellem netværkscomputere. Du lærer også om nogle af de konfigurationsindstillinger, der er mulige med OpenSSH-serverapplikationen, og hvordan du ændrer dem på dit Ubuntu-system.

OpenSSH er en frit tilgængelig version af Secure Shell (SSH) protokolfamilie af værktøjer til fjernstyring eller overførsel af filer mellem computere. Traditionelle værktøjer, der bruges til at udføre disse funktioner, såsom telnet eller rcp, er usikre og overfører brugerens adgangskode i klar tekst, når de bruges. OpenSSH giver en server dæmon og klient værktøjer til at lette sikker, krypteret fjernbetjening og filoverførsel operationer, effektivt at erstatte de gamle værktøjer.

OpenSSH-serverkomponenten, sshd, lytter løbende efter klientforbindelser fra et hvilket som helst af klientværktøjerne. Når der opstår en forbindelsesanmodning, indstiller sshd den korrekte forbindelse afhængigt af typen af klientværktøjsforbindelse. Hvis fjerncomputeren f.eks. opretter forbindelse til SSH-klientprogrammet, opretter OpenSSH-serveren en fjernbetjeningssession efter godkendelse. Hvis en fjernbruger opretter forbindelse til en OpenSSH-server med scp, starter OpenSSH-serverdæmonen en sikker kopi af filer mellem serveren og klienten efter godkendelse. OpenSSH kan bruge mange godkendelsesmetoder, herunder almindelig adgangskode, offentlig nøgle og Kerberos billetter.

Installation

Installation af OpenSSH-klient-og serverapplikationerne er enkel. For at installere OpenSSH-klientapplikationerne på dit Ubuntu-system skal du bruge denne kommando ved en terminalprompt:

sudo apt install openssh-client

for at installere OpenSSH-serverprogrammet og relaterede supportfiler skal du bruge denne kommando ved en terminalprompt:

sudo apt install openssh-server

konfiguration

Du kan konfigurere standardadfærden for OpenSSH-serverprogrammet, SSHD, ved at redigere filen /etc/ssh/sshd_config. For information om konfigurationsdirektiverne, der bruges i denne fil, kan du se den relevante manuelle side med følgende kommando, udstedt ved en terminalprompt:

man sshd_config

Der er mange direktiver i SSHD-konfigurationsfilen, der styrer sådanne ting som kommunikationsindstillinger og godkendelsestilstande. Følgende er eksempler på konfigurationsdirektiver, der kan ændres ved at redigere /etc/ssh/sshd_config – filen.

Tip

før du redigerer konfigurationsfilen, skal du lave en kopi af den originale fil og beskytte den mod at skrive, så du får de originale indstillinger som reference og kan genbruge efter behov.

Kopier /etc/ssh/sshd_config filen og beskyt den mod at skrive med følgende kommandoer, udstedt ved en terminalprompt:

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

desuden, da det at miste en ssh-server kan betyde at miste din måde at nå en server, skal du kontrollere konfigurationen efter at have ændret den, og før du genstart af serveren:

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

følgende er eksempler på konfigurationsdirektiver, du kan ændre:

  • for at indstille din OpenSSH til at lytte på TCP-port 2222 i stedet for standard TCP-port 22, skal du ændre Portdirektivet som sådan:

Port 2222

  • for at få din OpenSSH-server til at vise indholdet af /etc/issue.net filen som et pre-login-banner skal du blot tilføje eller ændre denne linje i /etc/ssh/sshd_config fil:

banner /etc/problem.net

efter at have foretaget ændringer i /etc/ssh/sshd_config fil, gem filen og genstart sshd-serverprogrammet for at gennemføre ændringerne ved hjælp af følgende kommando ved en terminalprompt:

sudo systemctl restart sshd.service

advarsel

mange andre konfigurationsdirektiver til SSHD er tilgængelige for at ændre serverapplikationens opførsel, så den passer til dine behov. Vær dog opmærksom på, at hvis din eneste metode til adgang til en server er ssh, og du laver en fejl ved at konfigurere sshd via /etc/ssh/sshd_config – filen, kan du finde ud af, at du er låst ude af serveren, når du genstarter den. Hvis der leveres et forkert konfigurationsdirektiv, kan sshd-serveren muligvis nægte at starte, så vær ekstra forsigtig, når du redigerer denne fil på en fjernserver.

SSH-nøgler

SSH tillader godkendelse mellem to værter uden behov for en adgangskode. SSH key authentication bruger en privat nøgle og en offentlig nøgle.

for at generere tasterne skal du indtaste:

ssh-keygen -t rsa

dette genererer tasterne ved hjælp af RSA-algoritmen. På tidspunktet for denne skrivning vil de genererede nøgler have 3072 bits. Du kan ændre antallet af bits ved at bruge -b. For eksempel at generere nøgler med 4096 bits kan du gøre:

ssh-keygen -t rsa -b 4096

under processen bliver du bedt om en adgangskode. Du skal blot trykke på Enter, når du bliver bedt om at oprette nøglen.

som standard gemmes den offentlige nøgle i filen ~/.ssh/id_rsa.pub, mens ~/.ssh/id_rsa er den private nøgle. Kopier nu id_rsa.pub filen til fjernværten og tilføj den til ~/.ssh/authorized_keys ved at indtaste:

ssh-copy-id username@remotehost

endelig skal du dobbelttjekke tilladelserne på authorized_keys filen, kun tilladelserne på authorized_keys filen, kun tilladelserne på authorized_keys godkendt bruger skal have læse-og skrivetilladelser. Hvis tilladelserne ikke er korrekte ændre dem ved:

chmod 600 .ssh/authorized_keys

Du skal nu kunne SSH til værten uden at blive bedt om en adgangskode.

Importer nøgler fra offentlige nøgleservere

i disse dage har mange brugere allerede SSH-nøgler registreret med tjenester som launchpad eller github. Disse kan let importeres med:

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

præfiksetlp:er underforstået og betyder hentning fra launchpad, alternativetgh: får værktøjet til at hente fra github i stedet.

tofaktorautentificering med U2F / FIDO

OpenSSH 8.2 tilføjet understøttelse af U2F / FIDO udstyr autentificering enheder. Disse enheder bruges til at give et ekstra lag af sikkerhed oven på den eksisterende nøglebaserede godkendelse, da udstyrstokenet skal være til stede for at afslutte godkendelsen.

det er meget nemt at bruge og opsætte. Det eneste ekstra trin er generere et nyt tastatur, der kan bruges sammen med udstyrsenheden. Til det er der to nøgletyper, der kan bruges: ecdsa-sk og ed25519-sk. Førstnævnte har bredere udstyrsstøtte, mens sidstnævnte muligvis har brug for en nyere enhed.

når tastaturet er genereret, kan det bruges som du normalt ville bruge enhver anden type nøgle i OpenSSH. Det eneste krav er, at U2F-enheden skal være til stede på værten for at bruge den private nøgle.

for eksempel skal du tilslutte U2F-enheden og generere et tastatur til brug med det:

$ 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

nu skal du bare overføre den offentlige del til serveren til ~/.ssh/authorized_keys og du er klar til at gå:

$ 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]:~$

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *