Viktiga sätt att säkra din SSH-konfiguration

En omfattande guide för att säkra SSH-konfigurationer genom 8 viktiga metoder, inklusive nyckelbaserad autentisering, inaktivering av rotinloggning, kryptering, uppdateringar, 2FA, loggning, åtkomstkontroller och nyckelhantering. Idealisk för systemadministratörer och säkerhetsproffs som implementerar SSH bästa praxis.

Relaterat innehåll

Vill du fortsätta lära dig?

Prenumerera på SSL.coms nyhetsbrev, håll dig informerad och säker.

Att säkra SSH involverar ett brett utbud av möjliga tekniker, men alla är inte lika praktiska för alla miljöer. Rekommendationerna i den här artikeln är allmänt erkända, effektiva metoder som balanserar enkel implementering med robust skydd. De är hämtade från standarder som fastställts av organisationer som NIST, CERT och OpenSSH-projektet, och återspeglar kärnprinciper som SSL.com också tillämpar för att säkra digitala certifikat – att skydda nycklar, använda stark kryptering och begränsa privilegierad åtkomst.

När du har ställt in dessa grundläggande bästa praxis kan du utforska mer avancerade taktiker – som certifikatbaserad SSH, portknackning eller SSH över VPN – efter behov.

1. Använd nyckelbaserad autentisering istället för lösenord

Vad det är:

Du ersätter lösenordsinloggningar med ett kryptografiskt offentligt/privat nyckelpar. Den offentliga nyckeln går på din server, medan den privata nyckeln stannar på din lokala dator.

Varför det är säkrare:

  • Lösenord är mottagliga för brute-force-attacker
  • En angripare måste fysiskt skaffa din privata nyckel för att bryta sig in, vilket är mycket svårare än att gissa ett lösenord

Så här implementerar du:

Skapa ett nyckelpar

På Linux eller macOS, öppna en terminal och kör:

ssh-keygen -t ed25519

För extra säkerhet (om ed25519 inte är tillgängligt i din miljö) kan du använda:

ssh-keygen -t rsa -b 4096

Kopiera den publika nyckeln till din server

Du kan använda kommandot ssh-copy-id (på Linux/macOS) för att enkelt överföra din publika nyckel:

ssh-copy-id user@server_address

Om ssh-copy-id inte är tillgängligt, lägg till innehållet i filen id_ed25519.pub (eller id_rsa.pub) manuellt till serverns ~/.ssh/authorized_keys-fil.

Inaktivera lösenordsautentisering

I /etc/ssh/sshd_config, ställ in:

Lösenordsautentiseringsnr

Starta om SSH-tjänsten:

sudo systemctl omstart ssh

Precis som att hantera digitala certifikat säkerställer SSH-nyckelbaserad autentisering att endast någon med rätt privat nyckel kan upprätta en anslutning.

2. Inaktivera rotinloggning

Vad det är:

Hindra rotanvändaren från att logga in direkt via SSH.

Varför det är säkrare:

  • Rotkontot har obegränsade privilegier och är ett attraktivt mål för angripare
  • Inaktivering av direkt rotåtkomst tvingar angripare att gissa inte bara en nyckel eller ett lösenord utan också ett giltigt användarnamn

Så här implementerar du:

I /etc/ssh/sshd_config, hitta eller lägg till:

PermitRootLogin nr

Starta om SSH:

sudo systemctl omstart ssh

Detta steg begränsar effektivt din attackyta genom att ta bort det mest kraftfulla kontot från lätt räckhåll.

3. Genomför stark kryptering och MAC-algoritmer

Vad det är:

SSH låter dig specificera vilka chiffer och meddelandeautentiseringskoder (MAC) som ska användas för att kryptera data och verifiera dataintegriteten.

Varför det är säkrare:

  • Äldre eller svaga algoritmer (t.ex. DES, RC4) kan vara sårbara för kryptografiska attacker
  • Att använda moderna chiffer (som AES-256) och starka MAC:er (som HMAC-SHA2) hjälper till att hålla din sessionsdata konfidentiell och manipuleringssäker

Så här implementerar du:

I /etc/ssh/sshd_config, lägg till eller uppdatera din chiffer-/MAC-lista:

Chiffer aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256, hmac-sha2-512

Starta om SSH:

sudo systemctl omstart ssh

Att hålla kryptografi uppdaterad för SSH är lika viktigt som att se till att säkra protokoll och chiffer används i TLS.

4. Håll SSH (och ditt system) uppdaterat

Vad det är:

Se till att OpenSSH, tillsammans med resten av ditt operativsystem, får regelbundna säkerhetskorrigeringar.

Varför det är säkrare:

  • Föråldrad programvara innehåller ofta kända sårbarheter
  • Angripare riktar sig ofta mot äldre versioner med oparpade utnyttjande

Så här implementerar du:

På Debian- eller Ubuntu-baserade system:

sudo apt-get update && sudo apt-get uppgradering

På CentOS, Fedora eller RHEL-baserade system:

sudo yum uppdatering

Se till att även leta efter firmwareuppdateringar om du kör SSH på nätverksapparater eller annan hårdvara.

5. Implementera tvåfaktors- eller multifaktorautentisering (2FA/MFA)

Vad det är:

Lägger till ett extra lager av säkerhet genom att kräva något utöver ett lösenord eller nyckel (t.ex. en engångskod på din telefon).

Varför det är säkrare:

  • Även om angripare skaffar din SSH-nyckel behöver de fortfarande den andra faktorn för att logga in
  • Hjälper till att försvara sig mot identitetsstöld

Så här implementerar du:

Installera och konfigurera ett MFA-verktyg

Till exempel, Google Authenticator kan installeras på Linux-servrar och ställas in som en PAM-modul (Pluggable Authentication Modules). Följ installationsinstruktionerna som är specifika för din distribution.

Redigera /etc/pam.d/sshd och /etc/ssh/sshd_config

  • Aktivera Google Authenticator eller en annan MFA-modul
  • Ställ in ChallengeResponseAuthentication ja och AuthenticationMethods offentlig nyckel, tangentbordsinteraktiv (eller vilken kombination som passar din miljö)

Starta om SSH:

sudo systemctl omstart ssh

6. Aktivera loggning och övervakning

Vad det är:

Fånga SSH-inloggningshändelser, spåra misstänkt aktivitet och få varningar när något är fel.

Varför det är säkrare:

  • Intrångsförsök är ofta synliga i loggar som upprepade misslyckade inloggningar eller obehöriga åtgärder
  • Tidig upptäckt innebär att du kan svara snabbt – blockera IP-adresser eller ändra konfigurationer innan skadan är skedd

Så här implementerar du:

Öka loggspråkighet

I /etc/ssh/sshd_config, ställ in:

LogLevel VERBOSE

Samlade loggar

Använd verktyg för att förhindra intrång

fail2ban skannar loggfiler och förbjuder IP-adresser som visar skadliga tecken, som för många lösenordsfel.

7. Implementera åtkomstkontroller och begränsningar

Vad det är:

Begränsa vem som kan ansluta till SSH och varifrån, förhindra obehöriga eller överdrivna inkommande förfrågningar.

Sätt att göra det:

Brandväggsbegränsningar

Tillåt endast SSH från kända eller betrodda IP-adresser. Till exempel, på Linux med ufw:

sudo ufw tillåta från 192.168.1.0/24 till valfri port 22

Portkonfiguration

Att köra SSH på en icke-standardport (t.ex. 2222) kan minska automatiska skanningsförsök. Det är inte ett substitut för riktiga säkerhetsåtgärder, men det kan minska bullret.

Användar-/gruppbegränsningar

I /etc/ssh/sshd_config, ange:

TillåtAnvändare alice bob

or

AllowGroups sshadmins

8. Använd SSH-nyckellösenord och säker nyckellagring

Vad det är:

Kryptera din privata nyckel med en lösenfras så att även om din maskin är intrång, är själva nyckeln inte direkt användbar.

Varför det är säkrare:

  • En stulen nyckelfil utan en lösenordsfras kan ge omedelbar åtkomst
  • Lösenfraser fungerar som ett extra lager av kryptering på din lokala nyckel

Så här implementerar du:

Ställ in en lösenordsfras under nyckelgenerering

ssh-keygen -t ed25519

(Du kommer att bli ombedd att ange en lösenfras.)

Skydda dina nyckelfiler

Begränsa behörigheter till din .ssh-mapp och nyckelfiler:

chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519

Tänk på maskinvarusäkerhetsmoduler (HSM) eller tokens

För större organisationer kan användning av dedikerad hårdvara för nyckellagring minska riskerna för programvarubaserad stöld eller skadlig programvara.

Slutsats

SSH säkerhet kokar ner till lager av skydd. Genom att implementera nyckelbaserad autentisering, inaktivera direkt root-åtkomst, använda stark kryptering, hålla sig uppdaterad, kräva multifaktorautentisering, övervaka loggar, begränsa åtkomst och skydda dina nycklar med lösenordsfraser, täcker du de vanligaste (och allvarligaste) riskerna.

Dessa åtgärder överensstämmer med samma bredare säkerhetsfilosofi som SSL.com förespråkar för digitala certifikat: skydda kryptografiska nycklar, använd robust kryptering, begränsa privilegierad åtkomst och håll vaken över dina system. När du har etablerat dessa grundläggande bästa praxis kan du utforska mer avancerade alternativ som SSH-certifikatutfärdare, portknackning eller köra SSH över ett VPN för att ytterligare skräddarsy din säkerhetsställning.

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.