Sikring av SSH involverer et bredt spekter av mulige teknikker, men ikke alle er like praktiske for alle miljøer. Anbefalingene i denne artikkelen er allment anerkjente, effektive metoder som balanserer enkel implementering med robust beskyttelse. De er hentet fra standarder satt av organisasjoner som NIST, CERT og OpenSSH-prosjektet, og reflekterer kjerneprinsipper som SSL.com også bruker for å sikre digitale sertifikater – beskytte nøkler, bruke sterk kryptering og begrense privilegert tilgang.
Når du har satt opp disse grunnleggende beste fremgangsmåtene, kan du utforske mer avanserte taktikker – for eksempel sertifikatbasert SSH, portbanking eller SSH over VPN – etter behov.
1. Bruk nøkkelbasert autentisering i stedet for passord
Hva det er:
Du erstatter passordpålogginger med et kryptografisk offentlig/privat nøkkelpar. Den offentlige nøkkelen går på serveren din, mens den private nøkkelen forblir på din lokale maskin.
Hvorfor det er sikrere:
- Passord er utsatt for brute-force-angrep
- En angriper må fysisk skaffe din private nøkkel for å bryte seg inn, noe som er langt vanskeligere enn å gjette et passord
Slik implementerer du:
Generer et nøkkelpar
På Linux eller macOS, åpne en terminal og kjør:
ssh-keygen -t ed25519
For ekstra sikkerhet (hvis ed25519 ikke er tilgjengelig i miljøet ditt), kan du bruke:
ssh-keygen -t rsa -b 4096
Kopier den offentlige nøkkelen til serveren din
Du kan bruke kommandoen ssh-copy-id (på Linux/macOS) for enkelt å overføre den offentlige nøkkelen din:
ssh-copy-id bruker@server_adresse
Hvis ssh-copy-id ikke er tilgjengelig, legg til innholdet i filen id_ed25519.pub (eller id_rsa.pub) manuelt til serverens ~/.ssh/authorized_keys-fil.
Deaktiver passordautentisering
I /etc/ssh/sshd_config, sett:
PassordGodkjenningsnr
Start SSH-tjenesten på nytt:
sudo systemctl restart ssh
Akkurat som å administrere digitale sertifikater, sikrer SSH-nøkkelbasert autentisering at bare noen med riktig private nøkkel kan opprette en tilkobling.
2. Deaktiver rotpålogging
Hva det er:
Hindre root-brukeren fra å logge på direkte via SSH.
Hvorfor det er sikrere:
- Root-kontoen har ubegrensede privilegier og er et attraktivt mål for angripere
- Deaktivering av direkte rottilgang tvinger angripere til å gjette ikke bare en nøkkel eller passord, men også et gyldig brukernavn
Slik implementerer du:
Finn eller legg til i /etc/ssh/sshd_config:
PermitRootLogin nr
Start SSH på nytt:
sudo systemctl restart ssh
Dette trinnet begrenser effektivt angrepsoverflaten din ved å fjerne den kraftigste kontoen fra enkel rekkevidde.
3. Håndhev sterk kryptering og MAC-algoritmer
Hva det er:
SSH lar deg spesifisere hvilke chiffer og meldingsautentiseringskoder (MAC) som skal brukes for å kryptere data og verifisere dataintegritet.
Hvorfor det er sikrere:
- Eldre eller svake algoritmer (f.eks. DES, RC4) kan være sårbare for kryptografiske angrep
- Bruk av moderne chiffer (som AES-256) og sterke MAC-er (som HMAC-SHA2) bidrar til å holde øktdataene dine konfidensielle og manipulasjonssikre
Slik implementerer du:
I /etc/ssh/sshd_config, legg til eller oppdater chiffer/MAC-listen din:
Chiffer aes256-ctr,aes192-ctr,aes128-ctr
MAC-er hmac-sha2-256, hmac-sha2-512
Start SSH på nytt:
sudo systemctl restart ssh
Å holde kryptografi oppdatert for SSH er like viktig som å sikre at sikre protokoller og chiffer brukes i TLS.
4. Hold SSH (og systemet ditt) oppdatert
Hva det er:
Å sikre at OpenSSH, sammen med resten av operativsystemet ditt, får vanlige sikkerhetsoppdateringer.
Hvorfor det er sikrere:
- Utdatert programvare inneholder ofte kjente sårbarheter
- Angripere retter seg ofte mot eldre versjoner med uoppdaterte utnyttelser
Slik implementerer du:
På Debian- eller Ubuntu-baserte systemer:
sudo apt-get update && sudo apt-upgrade
På CentOS-, Fedora- eller RHEL-baserte systemer:
sudo yum oppdatering
Sørg også for å se etter fastvareoppdateringer hvis du kjører SSH på nettverksenheter eller annen maskinvare.
5. Implementer tofaktor- eller multifaktorautentisering (2FA/MFA)
Hva det er:
Legger til et ekstra lag med sikkerhet ved å kreve noe i tillegg til et passord eller nøkkel (f.eks. en engangskode på telefonen).
Hvorfor det er sikrere:
- Selv om angripere får SSH-nøkkelen din, trenger de fortsatt den andre faktoren for å logge på
- Hjelper med å forsvare seg mot legitimasjonstyveri
Slik implementerer du:
Installer og konfigurer et MFA-verktøy
For eksempel, Google Authenticator kan installeres på Linux-servere og settes opp som en PAM-modul (Pluggable Authentication Modules). Følg installasjonsinstruksjonene som er spesifikke for din distribusjon.
Rediger /etc/pam.d/sshd og /etc/ssh/sshd_config
- Aktiver Google Authenticator eller en annen MFA-modul
- Sett ChallengeResponse Authentication ja og AuthenticationMethods offentlig nøkkel, tastatur-interaktiv (eller hvilken kombinasjon som passer ditt miljø)
Start SSH på nytt:
sudo systemctl restart ssh
6. Aktiver logging og overvåking
Hva det er:
Registrer SSH-påloggingshendelser, spor mistenkelig aktivitet og motta varsler når noe er galt.
Hvorfor det er sikrere:
- Inntrengingsforsøk er ofte synlige i logger som gjentatte mislykkede pålogginger eller uautoriserte handlinger
- Tidlig oppdagelse betyr at du kan reagere raskt – blokkere IP-er eller endre konfigurasjoner før skaden er gjort
Slik implementerer du:
Øk loggomtale
I /etc/ssh/sshd_config, sett:
LoggNivå VERBOSE
Samlede logger
- Verktøy som syslog, rsyslogeller syslog-ng bidra til å samle inn og sentralisere logger
- A SIEM-løsning (Security Information and Event Management). kan tilby avanserte analyser og varsling
Bruk verktøy for å forhindre inntrenging
fail2ban skanner loggfiler og forbyr IP-er som viser ondsinnede tegn, for eksempel for mange passordfeil.
7. Implementer tilgangskontroller og begrensninger
Hva det er:
Begrens hvem som kan koble til SSH og hvorfra, og forhindrer uautoriserte eller overdrevne innkommende forespørsler.
Måter å gjøre det på:
Brannmurrestriksjoner
Tillat bare SSH fra kjente eller pålitelige IP-adresser. For eksempel, på Linux med ufw:
sudo ufw tillate fra 192.168.1.0/24 til en hvilken som helst port 22
Portkonfigurasjon
Å kjøre SSH på en ikke-standard port (f.eks. 2222) kan redusere automatiske skanneforsøk. Det er ikke en erstatning for ekte sikkerhetstiltak, men det kan redusere støyen.
Bruker-/gruppebegrensninger
I /etc/ssh/sshd_config, spesifiser:
Tillat brukere alice bob
or
AllowGroups sshadmins
8. Bruk SSH-nøkkelpassord og sikker nøkkellagring
Hva det er:
Krypter din private nøkkel med en passordfrase slik at selv om maskinen din er kompromittert, er ikke selve nøkkelen umiddelbart brukbar.
Hvorfor det er sikrere:
- En stjålet nøkkelfil uten en passordfrase kan gi umiddelbar tilgang
- Passord fungerer som et ekstra lag med kryptering på din lokale nøkkel
Slik implementerer du:
Angi en passordfrase under nøkkelgenerering
ssh-keygen -t ed25519
(Du blir bedt om å angi en passordfrase.)
Beskytt nøkkelfilene dine
Begrens tillatelser til .ssh-mappen og nøkkelfiler:
chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519
Vurder maskinvaresikkerhetsmoduler (HSM) eller tokens
For større organisasjoner kan bruk av dedikert maskinvare for nøkkellagring redusere risikoen for programvarebasert tyveri eller skadelig programvare.
Konklusjon
SSH-sikkerhet koker ned til lag med beskyttelse. Ved å implementere nøkkelbasert autentisering, deaktivere direkte rottilgang, bruke sterk kryptering, holde deg oppdatert, kreve multifaktorautentisering, overvåke logger, begrense tilgang og beskytte nøklene dine med passordfraser, dekker du de vanligste (og alvorligste) risikoene.
Disse tiltakene er i tråd med den samme bredere sikkerhetsfilosofien som SSL.com forfekter for digitale sertifikater: Beskytt kryptografiske nøkler, bruk robust kryptering, begrense privilegert tilgang og hold øye med systemene dine. Når du har etablert disse grunnleggende beste praksisene, kan du utforske mer avanserte alternativer som SSH-sertifikatmyndigheter, portbanking eller kjøre SSH over en VPN for å skreddersy sikkerhetsstillingen din ytterligere.