PuTTY/SSH Intro Tutorial
Indholdsfortegnelse:
- Installation af OpenSSH Client
- Installation af OpenSSH Client på Linux
- Installation af OpenSSH på Ubuntu og Debian
- Installation af OpenSSH på CentOS og Fedora
- Installation af OpenSSH Client på Windows 10
- Installation af OpenSSH Client på macOS
- Sådan bruges kommandoen
ssh
- SSH-konfigurationsfil
- Portvideresendelse
- Lokal havneforsendelse
- Videresendelse af fjernport
- Dynamisk portvideresendelse
- Konklusion
Secure Shell (SSH) er en kryptografisk netværksprotokol, der bruges til en krypteret forbindelse mellem en klient og en server. Ssh-klienten opretter en sikker forbindelse til SSH-serveren på en fjernmaskine. Den krypterede forbindelse kan bruges til at udføre kommandoer på serveren, X11-tunneling, portvideresendelse og mere.
Der er et antal SSH-klienter, der er tilgængelige både gratis og kommercielle, hvor OpenSSH er den mest anvendte klient. Det er tilgængeligt på alle større platforme, herunder Linux, OpenBSD, Windows, macOS og andre.
, vil vi forklare, hvordan man bruger OpenSSH-kommandolinjeklienten (
ssh
) til at logge ind på en fjern maskine og køre kommandoer eller udføre andre handlinger.
Installation af OpenSSH Client
OpenSSH-klientprogrammet kaldes
ssh
og kan aktiveres fra terminalen. OpenSSH-klientpakken indeholder også andre SSH-værktøjer, såsom
scp
og
sftp
der er installeret ved siden af
ssh
kommandoen.
Installation af OpenSSH Client på Linux
OpenSSH-klient er som standard forinstalleret på de fleste Linux-distributioner. Hvis dit system ikke har ssh-klienten installeret, kan du installere den ved hjælp af pakkeadministratoren for din distribution.
Installation af OpenSSH på Ubuntu og Debian
sudo apt update
sudo apt install openssh-client
Installation af OpenSSH på CentOS og Fedora
sudo dnf install openssh-clients
Installation af OpenSSH Client på Windows 10
De fleste Windows-brugere bruger Putty til at oprette forbindelse til en ekstern maskine via SSH. Imidlertid inkluderer de nyeste versioner af Windows 10 en OpenSSH-klient og server. Begge pakker kan installeres via GUI eller PowerShell.
For at finde det nøjagtige navn på OpenSSH-pakken skal du indtaste følgende kommando:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Kommandoen skal returnere noget lignende:
Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent
Når du kender pakkenavnet, skal du installere det ved at køre:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Ved succes vil output se sådan ud:
Path: Online: True RestartNeeded: False
Installation af OpenSSH Client på macOS
macOS leveres med OpenSSH-klienten installeret som standard.
Sådan bruges kommandoen
ssh
Følgende krav skal være opfyldt for at kunne logge ind på en fjern maskine via SSH:
- Der skal køre en SSH-server på den eksterne maskine. SSH-porten skal være åben i fjernmaskinens firewall. Du skal kende brugernavnet og adgangskoden til den eksterne konto. Kontoen skal have passende privilegier til ekstern login.
Den grundlæggende syntaks for
ssh
kommandoen er som følger:
ssh:HOST
For at bruge
ssh
kommandoen skal du åbne din terminal eller PowerShell og skrive
ssh
efterfulgt af det eksterne værtsnavn:
ssh ssh.linuxize.com
Når du opretter forbindelse til en fjernmaskine via SSH for første gang, vil du se en meddelelse som nedenfor.
The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?
Hver vært har et unikt fingeraftryk, der er gemt i filen
~/.ssh/known_hosts
.
Skriv
yes
at gemme det eksterne fingeraftryk, og du bliver bedt om at indtaste din adgangskode.
Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:
Når du har indtastet adgangskoden, logges du på den eksterne maskine.
Når brugernavnet ikke er angivet, bruger
ssh
kommandoen det aktuelle system-login-navn.
For at logge ind som en anden bruger skal du angive brugernavn og vært i følgende format:
ssh username@hostname
Brugernavnet kan også specificeres med indstillingen
-l
:
ssh -l username hostname
Når der ikke gives nogen port, vil SSH-klienten som standard forsøge at oprette forbindelse til fjernserveren på port 22. På nogle servere ændrer administratorer standard SSH-porten for at tilføje et ekstra lag af sikkerhed til serveren ved at reducere risikoen for automatiske angreb.
For at oprette forbindelse til en ikke-standardport skal du bruge indstillingen
-p
til at specificere porten:
ssh -p 5522 username@hostname
ssh -v username@hostname
Brug
-vv
eller
-vvv
at øge
-vvv
.
Kommandoen
ssh
accepterer et antal indstillinger.
For en komplet liste over alle indstillinger læser du
ssh
man-siden ved at skrive
man ssh
i din terminal.
SSH-konfigurationsfil
OpenSSH-klienten læser de indstillinger, der er angivet i konfigurationsfilen per bruger (
~/.ssh/config
). I denne fil kan du gemme forskellige SSH-indstillinger for hver fjernmaskine, du opretter forbindelse til.
En prøve SSH-konfiguration vises nedenfor:
Host dev HostName dev.linuxize.com User mike Port 4422
Når du påberåber ssh-klienten ved at skrive
ssh dev
vil kommandoen læse filen
~/.ssh/config
og bruge de forbindelsesdetaljer, der er specificeret for dev-værten. I dette eksempel svarer
ssh dev
til følgende:
ssh -p 4422 [email protected]
For mere information, se artiklen på SSH-konfigurationsfil.
Autentificering af offentlig nøgle
SSH-protokollen understøtter forskellige godkendelsesmekanismer.
Den offentlige nøglebaserede godkendelsesmekanisme giver dig mulighed for at logge på den eksterne server uden at skulle indtaste din adgangskode.
Denne metode fungerer ved at generere et par kryptografiske nøgler, der bruges til godkendelse. Den private nøgle gemmes på klientenheden, og den offentlige nøgle overføres til hver fjernserver, du vil logge på. Fjernserveren skal konfigureres til at acceptere nøgleautentificering.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Du bliver bedt om at indtaste en sikker adgangssætning. Uanset om du vil bruge adgangskode, er det op til dig.
Når du har dit nøglepar, skal du kopiere den offentlige nøgle til fjernserveren:
ssh-copy-id username@hostname
Indtast adgangskoden til ekstern bruger, og den offentlige nøgle tilføjes filen til den eksterne bruger
authorized_keys
.
Når nøglen er uploadet, kan du logge på den eksterne server uden at blive bedt om et kodeord.
Ved at indstille en nøglebaseret autentificering kan du forenkle loginprocessen og øge den generelle serversikkerhed.
Portvideresendelse
SSH-tunneling eller SSH-portvideresendelse er en metode til at oprette en krypteret SSH-forbindelse mellem en klient og en servermaskine, gennem hvilken serviceporte kan videresendes.
SSH-videresendelse er nyttig til transport af netværksdata for tjenester, der bruger en ikke-krypteret protokol, såsom VNC eller FTP, adgang til geobegrænset indhold eller omgå mellemliggende firewalls. Grundlæggende kan du videresende enhver TCP-port og tunnel trafikken over en sikker SSH-forbindelse.
Der er tre typer SSH-portvideresendelse:
Lokal havneforsendelse
Lokal portvideresendelse giver dig mulighed for at videresende en forbindelse fra klientværten til SSH-serverværten og derefter til destinationshostporten.
Hvis du vil oprette en lokal port-videresendelse, skal du indstille
-L
til
ssh
klienten:
ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname
Indstillingen -f fortæller
ssh
kommandoen at køre i baggrunden og
-N
ikke at udføre en fjernkommando.
Videresendelse af fjernport
Videresendelse af fjernport er det modsatte af lokal havnevideresendelse. Den videresender en port fra serverværten til klientværten og derefter til destinationens værtport.
Indstillingen
-L
fortæller
ssh
at oprette en viderestilling af fjernport:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname
Dynamisk portvideresendelse
Dynamisk portvideresendelse opretter en SOCKS-proxyserver, der tillader kommunikation på tværs af en række porte.
For at oprette en dynamisk portvideresendelse (SOCKS) videresendes indstillingen
-D
til ssh-klienten:
ssh -D LOCAL_PORT -N -f username@hostname
For mere detaljeret information og trin-for-trin-instruktion, se artiklen om, hvordan du konfigurerer SSH-tunnel (portvideresendelse).
Konklusion
For at oprette forbindelse til en ekstern server via SSH skal du bruge
ssh
kommandoen efterfulgt af det eksterne brugernavn og værtsnavn (
ssh username@hostname
).
At vide, hvordan man bruger
ssh
kommandoen, er et vigtigt element for styring af ekstern server.
Gratis SSH-klienter til Windows 10/8/7

Secure Shell eller SSH er et program, som lader dig logge ind på en ekstern maskine, udføre kommandoer og flyt filer. Kontroller disse gratis SSH-klientprogrammer til Windows.
Sådan konfigureres ssh-tunneling for at omgå en firewall

En firewall er en god ting, men hvis det forhindrer dig i at gøre noget, er SSH-tunnel en god mulighed at udforske.
Sådan ændres ssh-porten i Linux

Som standard lytter SSH på port 22. Ændring af standard SSH-port tilføjer et ekstra lag af sikkerhed til din server ved at reducere risikoen for automatiske angreb. Denne tutorial forklarer, hvordan du ændrer standard SSH-porten i Linux.