SSH er en nettverksprotokoll som sikrer tilgang til eksterne datamaskiner over et nettverk. Den muliggjør trygg kommunikasjon og kontroll over fjerntliggende systemer.
Datamaskiner kommuniserer med hverandre via nettverk. For å standardisere denne kommunikasjonen, ble det utviklet protokoller som Telnet, som lar en bruker kontrollere en annen datamaskin. Nettverksforskere definerte et sett med kommunikasjonsregler for maskiner som snakker sammen.
Telnet er imidlertid ikke sikker, ettersom data som overføres, kan avlyttes og leses av uvedkommende. Som et sikrere alternativ ble SSH introdusert på midten av 90-tallet. SSH er en pålitelig etterfølger til Telnet-protokollen.
Programvareutviklere og systemadministratorer bruker ofte SSH. Det er en essensiell ferdighet å mestre. La oss derfor lære om det nå.
Hva er SSH?
SSH, eller Secure Shell, er en nettverksprotokoll som gir sikker tilgang til og kommunikasjon med eksterne maskiner, hovedsakelig servere. Denne protokollen sikrer kommunikasjonen gjennom kryptering og brukes ofte av nettverksadministratorer og utviklere til å administrere eksterne systemer og applikasjoner, utføre kommandoer og overføre filer.
Hvorfor trengs SSH?
SSH ble utviklet i 1995 for å løse sikkerhetsproblemene knyttet til usikrede fjerntilgangsprotokoller, som rlogin, rsh og Telnet.
Telnet, utviklet i 1969, er et kommandolinjeverktøy som gir tilgang til en ekstern server. Via Telnet kan man sende kommandoer som utføres på serveren, som om man satt rett foran den. Telnet overfører meldinger i klartekst, noe som er en sikkerhetsrisiko.
Kommandoene som utføres via Telnet kan inkludere kjøring av programmer, oppretting av kataloger, filhåndtering og start/stopp av tjenester. Problemet er at dataoverføringen skjer over mange nettverk, hvorav noen kan være usikre. Dette gjør at data kan fanges opp og endres før de når målet.
Tidligere foregikk kommunikasjon i klartekst. Dette gjorde at data som ble overført over internett, lett kunne avlyttes og leses siden meldingene ikke var kryptert. Klartekstprotokoller er svært usikre og bør ikke brukes til overføring av sensitive data som passord. SSH anses derfor som et sikkert alternativ til eldre protokoller for fjerntilgang.
Hvordan fungerer SSH?
SSH benytter en klient-server-arkitektur for sikker kommunikasjon over nettverket. En SSH-klient kobler seg til en SSH-server. Som standard lytter SSH-serveren til TCP-port 22, men dette kan endres for bedre sikkerhet.
Protokollen benytter kryptografi med offentlig nøkkel for autentisering mellom klient og server. Den benytter også sterk symmetrisk kryptering og hash-algoritmer for å sikre konfidensialitet og dataintegritet i meldingsoverføringen.
Linux er et populært operativsystem for eksterne servere på grunn av sin stabilitet og sikkerhet. Mange Linux-baserte servere kjører i årevis uten feil eller omstarter.
De fleste SSH-økter består av to hovedoperasjoner:
- Autentisering
- Utførelse av kommandoer
SSH-servere kan autentisere klienter på ulike måter.
De to mest vanlige metodene er:
Passordbasert autentisering er standardmetoden for OpenSSH-installasjoner, men den er ikke den sikreste. Moderne brute force-angrep kan omgå denne autentiseringen, selv om passord overføres sikkert.
Nøkkelbasert autentisering gir bedre sikkerhet ved bruk av SSH-nøkkelpar, som er et mer pålitelig og sikkert alternativ.
Etter vellykket autentisering etableres en sikker forbindelse mellom klient og server.
Få tilgang til en ekstern server med SSH
Mac- og Linux-brukere kan bruke terminalen direkte til å kjøre SSH-kommandoer, siden OpenSSH er standard installert. Windows-brukere må installere en tredjeparts terminalemulatorklient, for eksempel PuTTY.
For å koble til en ekstern server med SSH, må du kjenne brukernavnet på den eksterne maskinen, samt IP-adressen eller domenenavnet til serveren. Du trenger også portnummeret hvis den ikke er standard (22).
Grunnsyntaksen for en SSH-kommando er:
$ ssh <brukernavn> @ <vert> -p <portnummer>
La oss se på et eksempel ved hjelp av OverTheWire, en nettside som tilbyr gratis krigsspillutfordringer. Vi skal koble oss til bandit-utfordringen.
Informasjon for innlogging:
Brukernavn og passord: bandit0
Vert og port: bandit.labs.overthewire.org, 2220
Skriv inn følgende kommando og trykk enter:
$ ssh [email protected] -p 2220
Du vil bli bedt om passordet. Skriv det inn og trykk enter.
Hvis passordet er korrekt, er du logget inn på den eksterne serveren. Terminalen din vil se ut som på bildet over. Du kan nå skrive og utføre kommandoer på den eksterne maskinen.
For å avslutte SSH-økten, skriv inn kommandoen:
$ exit
Du vil få meldingen «Connection closed» når du er logget ut av SSH-økten.
Konklusjon
Hovedgrunnen til at SSH er populær er at all kommunikasjon mellom server og klient er kryptert.
Mange tror at SSH er komplisert, men det er enklere enn man skulle tro. Du har nå en grunnleggende forståelse av SSH, hvordan det fungerer, sikkerhetsaspektene og hvorfor det er viktig for sikker kommunikasjon.
Utforsk ressurser for å lære mer om systemadministrasjon og bruk av SSH.