De bästa sätten att säkra din SSH-server

Oct 15, 2025
Sekretess och säkerhet
Eny Setiyowati / Shutterstock.com

Säkra ditt Linux-systems SSH-anslutning för att skydda ditt system och dina data. Systemadministratörer och hemanvändare måste härda och säkra Internet-vända datorer, men SSH kan vara komplicerat. Här är tio enkla snabba vinster för att skydda din SSH-server.

Grunderna för SSH-säkerhet

SSH står för Säkert skal . Namnet ”SSH” används omväxlande för att betyda antingen själva SSH-protokollet eller programvaruverktygen som tillåter systemadministratörer och användare att skapa säkra anslutningar till fjärrdatorer med det protokollet.

SSH-protokollet är ett krypterat protokoll som är utformat för att ge en säker anslutning över ett osäkert nätverk, till exempel internet. SSH i Linux bygger på en bärbar version av OpenSSH projekt. Det implementeras i en klassisk klientservermodell , med en SSH-server som accepterar anslutningar från SSH-klienter. Klienten används för att ansluta till servern och till visa sessionen till fjärranvändaren. Servern accepterar anslutningen och körs sessionen.

I sin standardkonfiguration kommer en SSH-server att lyssna efter inkommande anslutningar på Transmission Control Protocol ( TCP ) port 22. Eftersom detta är en standardiserad välkänd hamn , det är ett mål för hotaktörer och skadliga robotar .

Hotaktörer startar bots som skannar en rad IP-adresser som letar efter öppna portar. Portarna undersöks sedan för att se om det finns sårbarheter som kan utnyttjas. Att tänka, "Jag är säker, det finns större och bättre mål än jag för de skurkarna att sikta på", är falskt resonemang. Bots väljer inte mål baserat på meriter; de letar metodiskt efter system de kan bryta mot.

Du nominerar dig själv som ett offer om du inte har säkrat ditt system.

Säkerhetsfriktion

Säkerhetsfriktion är irritationen - i vilken grad som helst - som användare och andra kommer att uppleva när du genomför säkerhetsåtgärder. Vi har långa minnen och kan komma ihåg att vi introducerade nya användare till ett datorsystem och hörde dem fråga med en förskräckt röst om de verkligen var tvungen att ange ett lösenord varje gång de loggade in på stordatorn. Det - för dem - var säkerhetsfriktion.

(För övrigt krediteras uppfinningen av lösenordet Fernando J. Corbató , en annan figur i panteonen för datavetare vars kombinerade arbete bidrog till omständigheterna som ledde till födelsen av Unix .)

Att införa säkerhetsåtgärder innebär vanligtvis någon form av friktion för någon. Företagare måste betala för det. Datoranvändarna kan behöva ändra sina välbekanta metoder eller komma ihåg en annan uppsättning autentiseringsdetaljer eller lägga till extra steg för att ansluta framgångsrikt. Systemadministratörerna kommer att ha ytterligare arbete att göra för att implementera och underhålla de nya säkerhetsåtgärderna.

Att härda och låsa ner ett Linux- eller Unix-liknande operativsystem kan bli väldigt snabbt involverat. Det vi presenterar här är en uppsättning enkla att implementera steg som förbättrar datorns säkerhet utan behov av tredjepartsapplikationer och utan att gräva igenom din brandvägg.

Dessa steg är inte det sista ordet i SSH-säkerhet, men de kommer att flytta dig långt framåt från standardinställningarna och utan för mycket friktion.

Använd SSH Protocol version 2

2006 uppdaterades SSH-protokollet från version 1 till version 2 . Det var en betydande uppgradering. Det skedde så många förändringar och förbättringar, särskilt kring kryptering och säkerhet, att version 2 inte är bakåtkompatibel med version 1. För att förhindra anslutningar från version 1-klienter kan du bestämma att din dator endast accepterar anslutningar från version 2-klienter.

För att göra det, redigera / etc / ssh / sshd_config fil. Vi kommer att göra detta mycket genom hela den här artikeln. När du behöver redigera den här filen är detta kommandot att använda:

sudo gedit / etc / ssh / sshd_config

Lägg till raden:

Protokoll 2

Och spara filen. Vi ska starta om SSH-demonprocessen. Återigen kommer vi att göra detta mycket genom hela den här artikeln. Detta är kommandot att använda i varje fall:

sudo systemctl starta om sshd

Låt oss kontrollera att vår nya inställning är i kraft. Vi hoppar över till en annan maskin och försöker SSH på vår testmaskin. Och vi använder -1 (protokoll 1) alternativ för att tvinga ssh kommando för att använda protokollversion 1.

ssh -1 [email protected]

Bra, vår anslutningsförfrågan avvisas. Låt oss se till att vi fortfarande kan ansluta till protokoll 2. Vi använder -2 (protokoll 2) alternativ för att bevisa faktum.

ssh -2 [email protected]

Det faktum att SSH-servern begär vårt lösenord är en positiv indikation på att anslutningen har gjorts och att du interagerar med servern. Eftersom moderna SSH-klienter som standard använder protokoll 2 behöver vi faktiskt inte ange protokoll 2 så länge vår klient är uppdaterad.

ssh [email protected]

Och vår anslutning accepteras. Så det är bara de svagare och mindre säkra protokoll 1-anslutningarna som avvisas.

Undvik hamn 22

Port 22 är standardporten för SSH-anslutningar. Om du använder en annan port lägger det till lite säkerhet genom dunkelhet i ditt system. Säkerhet genom dunkel anses aldrig vara en verklig säkerhetsåtgärd, och jag har stött mot det i andra artiklar. Faktum är att några av de smartare attackbotarna undersöker alla öppna portar och bestämmer vilken tjänst de bär, snarare än att förlita sig på en enkel uppslagningslista över portar och förutsätter att de tillhandahåller de vanliga tjänsterna. Men att använda en icke-standardport kan hjälpa till att minska buller och dålig trafik på port 22.

Redigera din SSH-konfigurationsfil för att konfigurera en icke-standardport:

sudo gedit / etc / ssh / sshd_config

Ta bort hash # från början av "Port" -raden och ersätt "22" med det portnummer du väljer. Spara din konfigurationsfil och starta om SSH-demon:

sudo systemctl starta om sshd

Låt oss se vilken effekt det har haft. Över på vår andra dator använder vi ssh kommando för att ansluta till vår server. De ssh kommandot är som standard att använda port 22:

ssh [email protected]

Vår anslutning vägras. Låt oss försöka igen och ange port 470 med alternativet -p (port):

ssh -p 479 [email protected]

Vår anslutning accepteras.

Filtrera anslutningar med TCP-omslag

TCP Wrappers är lätt att förstå åtkomstkontrollista . Det låter dig utesluta och tillåta anslutningar baserat på egenskaperna hos anslutningsbegäran, såsom IP-adress eller värdnamn. TCP-omslag bör användas tillsammans med, och inte istället för, en korrekt konfigurerad brandvägg. I vårt specifika scenario kan vi strama åt saker och ting genom att använda TCP-omslag.

TCP-omslag var redan installerat på Ubuntu 18.04 LTS-maskinen som används för att undersöka denna artikel. Den var tvungen att installeras på Manjaro 18.10 och Fedora 30.

För att installera på Fedora, använd detta kommando:

sudo yum installera tcp_wrappers

För att installera på Manjaro, använd detta kommando:

sudo pacman -Syu tcp-omslag

Det finns två filer inblandade. En har den tillåtna listan och den andra har den nekade listan. Redigera avslagslistan med:

sudo gedit /etc/hosts.deny

Detta öppnar gedit redigerare med deny-filen laddad i den.

Du måste lägga till raden:

ALLA: ALLA

Och spara filen. Det blockerar all åtkomst som inte har godkänts. Vi måste nu godkänna de anslutningar du vill acceptera. För att göra det måste du redigera tillåtna filen:

sudo gedit /etc/hosts.allow

Detta öppnar gedit redigeraren med den tillåtna filen laddad i den.

Vi har lagt till i SSH-daemon namnet, SSHD Och IP-adressen till den dator som vi ska tillåta att ansluta. Spara filen och låt oss se om begränsningarna och behörigheterna gäller.

Först ska vi försöka ansluta från en dator som inte finns i hosts.allow fil:

Anslutningen nekas. Vi försöker nu ansluta från maskinen till IP-adressen 192.168.4.23:

Vår anslutning accepteras.

Vårt exempel här är lite brutalt - bara en enda dator kan ansluta. TCP-omslag är ganska mångsidigt och mer flexibelt än detta. Det stöder värdnamn, jokertecken och undernätmasker för att acceptera anslutningar från IP-adressintervall. Du uppmuntras att kolla in mansidan .

Avvisa anslutningsförfrågningar utan lösenord

Även om det är en dålig praxis kan en Linux-systemadministratör skapa ett användarkonto utan lösenord. Det betyder att begäran om fjärranslutning från det kontot inte har något lösenord att kontrollera. Dessa anslutningar kommer att accepteras men obehöriga.

Standardinställningarna för SSH accepterar anslutningsförfrågningar utan lösenord. Vi kan ändra det mycket enkelt och se till att alla anslutningar är autentiserade.

Vi måste redigera din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden med texten #PermitEmptyPasswords no. Ta bort haschen # från början av raden och spara filen. Starta om SSH-demon:

sudo systemctl starta om sshd

Använd SSH-tangenter istället för lösenord

SSH-nycklar ger ett säkert sätt att logga in på en SSH-server. Lösenord kan gissas, sprickas eller brute-tvingad . SSH-nycklar är inte öppna för sådana typer av attacker.

När du genererar SSH-nycklar skapar du ett par nycklar. En är den offentliga nyckeln och den andra är den privata nyckeln. Den offentliga nyckeln är installerad på de servrar du vill ansluta till. Den privata nyckeln, som namnet antyder, hålls säker på din egen dator.

Med SSH-nycklar kan du skapa anslutningar utan ett lösenord som är - kontraintuitivt - säkrare än anslutningar som använder lösenordsautentisering.

När du gör en anslutningsförfrågan använder fjärrdatorn sin kopia av din offentliga nyckel för att skapa ett krypterat meddelande som skickas tillbaka till din dator. Eftersom den krypterades med din offentliga nyckel kan din dator avkryptera den med din privata nyckel.

Din dator extraherar sedan lite information från meddelandet, särskilt sessions-ID, krypterar det och skickar tillbaka det till servern. Om servern kan dekryptera den med sin kopia av din offentliga nyckel, och om informationen i meddelandet matchar det som servern skickade till dig, bekräftas att din anslutning kommer från dig.

Här upprättas en anslutning till servern 192.168.4.11 av en användare med SSH-nycklar. Observera att de inte uppmanas att ange ett lösenord.

ssh [email protected]

SSH-nycklar förtjänar en artikel helt för sig själva. Vi har en för dig. Här är hur man skapar och installerar SSH-nycklar .

RELATERAD: Hur man skapar och installerar SSH-nycklar från Linux-skalet

Inaktivera lösenordsautentisering helt och hållet

Naturligtvis är den logiska förlängningen av att använda SSH-nycklar att om alla fjärranvändare tvingas anta dem kan du stänga av lösenordsautentisering helt.

Vi måste redigera din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden som börjar med "#PasswordAuthentication yes." Ta bort haschen # ändra “ja” till “nej” från radens början och spara filen. Starta om SSH-demon:

sudo systemctl starta om sshd

Inaktivera vidarebefordran av X11

X11 vidarebefordran gör det möjligt för fjärranvändare att köra grafiska applikationer från din server under en SSH-session. I händerna på en hotaktör eller skadlig användare kan ett GUI-gränssnitt underlätta deras elakartade syften.

Ett standardmantra inom cybersäkerhet är om du inte har en god anledning att slå på den, stäng av den. Vi gör det genom att redigera din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden som börjar med "# X11Forwarding no." Ta bort haschen # från början av raden och spara filen. Starta om SSH-demon:

sudo systemctl starta om sshd

Ange ett tomgångstidsvärde

Om det finns en etablerad SSH-anslutning till din dator och det inte har varit någon aktivitet på den under en tidsperiod kan det utgöra en säkerhetsrisk. Det finns en chans att användaren har lämnat sitt skrivbord och är upptagen någon annanstans. Alla andra som passerar vid sitt skrivbord kan sitta ner och börja använda sin dator och via SSH din dator.

Det är mycket säkrare att fastställa en tidsgräns. SSH-anslutningen kommer att avbrytas om den inaktiva perioden överensstämmer med tidsgränsen. Återigen redigerar vi din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden som börjar med "#ClientAliveInterval 0" Ta bort hash # ändrar siffran 0 till önskat värde från början av raden. Vi har använt 300 sekunder, vilket är 5 minuter. Spara filen och starta om SSH-demonen:

sudo systemctl starta om sshd

Ange en gräns för lösenordsförsök

Att definiera en gräns för antalet autentiseringsförsök kan hjälpa till att hindra lösenord gissning och brute-force attacker. Efter det angivna antalet autentiseringsförfrågningar kommer användaren att kopplas bort från SSH-servern. Som standard finns det ingen gräns. Men det åtgärdas snabbt.

Återigen behöver vi redigera din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden som börjar med "#MaxAuthTries 0". Ta bort haschen # ändrar siffran 0 till önskat värde från början av raden. Vi har använt 3 här. Spara filen när du gjorde dina ändringar och starta om SSH-demon:

sudo systemctl starta om sshd

Vi kan testa detta genom att försöka ansluta och medvetet ange ett felaktigt lösenord.

Observera att MaxAuthTries-numret tycktes vara ett fler än antalet försök som användaren tillät. Efter två dåliga försök kopplas vår testanvändare bort. Detta var med MaxAuthTries inställd på tre.

Inaktivera root-inloggningar

Det är dålig praxis att logga in som root på din Linux-dator. Du bör logga in som en vanlig användare och använda sudo för att utföra åtgärder som kräver root-privilegier. Ännu mer så bör du inte låta root logga in på din SSH-server. Endast vanliga användare bör få ansluta. Om de behöver utföra en administrativ uppgift bör de använda sudo för. Om du tvingas låta en rotanvändare logga in kan du åtminstone tvinga dem att använda SSH-nycklar.

För sista gången måste vi redigera din SSH-konfigurationsfil:

sudo gedit / etc / ssh / sshd_config

Bläddra igenom filen tills du ser raden som börjar med "#PermitRootLogin prohibit-password" Ta bort hash # från radens början.

  • Om du alls vill förhindra att root loggar in, byt ut "prohibit-password" med "no".
  • Om du ska tillåta root att logga in men tvinga dem att använda SSH-nycklar, lämna "prohibit-password" på plats.

Spara dina ändringar och starta om SSH-demon:

sudo systemctl starta om sshd

Det ultimata steget

Om du inte alls behöver SSH på din dator, se till att den är inaktiverad.

sudo systemctl stoppa sshd
sudo systemctl inaktivera sshd

Om du inte öppnar fönstret kan ingen klättra in.

.post-innehåll .inmatningsfot

The Best Ways To Secure Your SSH Server

How To Secure Linux SSH Server

How To Secure And Protect SSH Server

How To Secure A Server

Fail2ban Tutorial | How To Secure Your Server

How To Secure A Linux Server With UFW, SSH Keygen, Fail2ban & Two Factor Authentication

🔒 Securing SSH Server: Configuration

Beginners Guide To SSH


Sekretess och säkerhet - Mest populära artiklar

Så här skapar du ett Apple-ID på din iPhone eller iPad

Sekretess och säkerhet Oct 29, 2025

OBEHANDLAT INNEHÅLL När du använder någon av Apples datorer, smartphones eller surfplattor är ett Apple-ID integrerat för att inte bara ställa in enheter i första hand uta..


Vad är en DMG-fil (och hur använder jag en)?

Sekretess och säkerhet Aug 13, 2025

DMG-filer är behållare för appar i macOS. Du öppnar dem, drar appen till din applikationsmapp och matar ut dem och sparar besväret med den fruktade "Installationsguiden" för d..


Hur man bäddar in filer i andra filer med Steganography i Windows

Sekretess och säkerhet Aug 15, 2025

Har du dokument eller bilder som du inte vill att någon annan ska hitta? Läs vidare för att ta reda på hur du kan bädda in dina viktiga filer i andra filer så att ..


Hur man använder BitLocker utan en Trusted Platform Module (TPM)

Sekretess och säkerhet Jul 5, 2025

BitLocker's kryptering med full disk kräver normalt en dator med en Trusted Platform Module (TPM). Försök att aktivera BitLocker på en dator utan TPM, så får du..


Hur inaktiverar du Cortana i Windows 10

Sekretess och säkerhet Feb 6, 2025

Microsoft vill inte att du inaktiverar Cortana. Du brukade kunna stänga av Cortana i Windows 10, men Microsoft tog bort den enkla vippomkopplaren i Jubileumsuppdatering ..


Hur man felsöker problem med Minecraft LAN-spel

Sekretess och säkerhet Jul 3, 2025

Minecraft är ett fantastiskt spel att spela i ditt lokala nätverk med vänner, men det är inte kul när du måste spendera hälften av din tid på att felsöka anslutningsproblem..


Använder du Firefox på Linux? Din Flash Player är gammal och föråldrad!

Sekretess och säkerhet Jul 30, 2025

OBEHANDLAT INNEHÅLL Adobe utvecklar inte längre Flash för Firefox på Linux. Du får fortfarande säkerhetsuppdateringar, men det är det - ditt Flash Player-tillägg är redan..


Håll det enkelt: Här är de enda fyra system- och säkerhetsverktygen du behöver på Windows

Sekretess och säkerhet Sep 28, 2025

OBEHANDLAT INNEHÅLL Windows är komplicerat och behöver många olika systemverktyg och säkerhetsverktyg för att fungera bra - eller gör det? Vi täckte nyligen de må..


Kategorier