Android

Ssh-kommando

SSH ТУННЕЛЬ ► Линуксовые Фишечки #19

SSH ТУННЕЛЬ ► Линуксовые Фишечки #19

Innholdsfortegnelse:

Anonim

Secure Shell (SSH) er en kryptografisk nettverksprotokoll som brukes for en kryptert forbindelse mellom en klient og en server. Ssh-klienten oppretter en sikker tilkobling til SSH-serveren på en ekstern maskin. Den krypterte forbindelsen kan brukes til å utføre kommandoer på serveren, X11-tunneling, portvideresending og mer.

Det er en rekke SSH-klienter som er tilgjengelige både gratis og kommersiell, og OpenSSH er den mest brukte klienten. Det er tilgjengelig på alle større plattformer, inkludert Linux, OpenBSD, Windows, macOS og andre.

, vil vi forklare hvordan du bruker OpenSSH-kommandolinjeklienten ( ssh ) til å logge inn på en ekstern maskin og kjøre kommandoer eller utføre andre operasjoner.

Installerer OpenSSH Client

OpenSSH-klientprogrammet kalles ssh og kan påberopes fra terminalen. OpenSSH-klientpakken inneholder også andre SSH-verktøy som scp og sftp som er installert ved siden av ssh kommandoen.

Installere OpenSSH Client på Linux

OpenSSH-klienten er forhåndsinstallert på de fleste Linux-distribusjoner som standard. Hvis systemet ditt ikke har ssh-klienten installert, kan du installere den ved å bruke pakkehåndtereren til distribusjonen.

Installere OpenSSH på Ubuntu og Debian

sudo apt update sudo apt install openssh-client

Installere OpenSSH på CentOS og Fedora

sudo dnf install openssh-clients

Installere OpenSSH Client på Windows 10

De fleste Windows-brukere bruker Putty for å koble seg til en ekstern maskin via SSH. Imidlertid inkluderer de nyeste versjonene av Windows 10 en OpenSSH-klient og server. Begge pakkene kan installeres via GUI eller PowerShell.

For å finne det nøyaktige navnet på OpenSSH-pakken, skriver du følgende kommando:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Kommandoen skal returnere noe slikt:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

Når du vet at pakkenavnet installerer det ved å kjøre:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Etter suksess vil output se noe slik ut:

Path: Online: True RestartNeeded: False

Installere OpenSSH Client på macOS

macOS leveres med OpenSSH-klienten installert som standard.

Slik bruker du ssh kommandoen

Følgende krav må være oppfylt for å kunne logge inn på en ekstern maskin via SSH:

  • En SSH-server må være på den eksterne maskinen. SSH-porten må være åpen i den eksterne maskinens brannmur. Du må kjenne brukernavnet og passordet til den eksterne kontoen. Kontoen må ha riktige rettigheter for ekstern innlogging.

Den grunnleggende syntaks for ssh kommandoen er som følger:

ssh:HOST

For å bruke ssh kommandoen, åpne Terminal eller PowerShell og skriv ssh etterfulgt av det eksterne vertsnavnet:

ssh ssh.linuxize.com

Når du kobler til en ekstern maskin gjennom SSH for første gang, vil du se en melding 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 vert har et unikt fingeravtrykk som er lagret i filen ~/.ssh/known_hosts .

Skriv yes å lagre det eksterne fingeravtrykket, så blir du bedt om å oppgi passordet ditt.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

Når du har angitt passordet, logges du på den eksterne maskinen.

Når brukernavnet ikke er gitt, bruker ssh kommandoen det gjeldende systempåloggingsnavnet.

For å logge inn som en annen bruker, spesifiser brukernavnet og verten i følgende format:

ssh username@hostname

Brukernavnet kan også spesifiseres med alternativet -l :

ssh -l username hostname

Når det ikke er gitt noen port, vil SSH-klienten som standard prøve å koble seg til den eksterne serveren på port 22. På noen servere endrer administratorer standard SSH-porten for å legge til et ekstra lag med sikkerhet til serveren ved å redusere risikoen for automatiserte angrep.

Hvis du vil koble til på en port som ikke er standard, bruker du -p for å spesifisere porten:

ssh -p 5522 username@hostname

ssh -v username@hostname

For å øke -vv , bruk -vv eller -vvv .

Kommandoen ssh godtar en rekke alternativer.

For en fullstendig liste over alle alternativene kan du lese ssh man-siden ved å skrive man ssh i terminalen.

SSH-konfigurasjonsfil

OpenSSH-klienten leser alternativene som er satt i konfigurasjonsfilen per bruker ( ~/.ssh/config ). I denne filen kan du lagre forskjellige SSH-alternativer for hver eksterne maskin du kobler til.

En prøve SSH-konfigurasjon vises nedenfor:

Host dev HostName dev.linuxize.com User mike Port 4422

Når du påkaller ssh-klienten ved å skrive ssh dev vil kommandoen lese ~/.ssh/config filen og bruke tilkoblingsdetaljene som er spesifisert for dev-verten. I dette eksemplet tilsvarer ssh dev følgende:

ssh -p 4422 [email protected]

For mer informasjon, sjekk artikkelen på SSH-konfigurasjonsfilen.

Autentisering av offentlig nøkkel

SSH-protokollen støtter forskjellige autentiseringsmekanismer.

Den offentlige nøkkelbaserte autentiseringsmekanismen lar deg logge på den eksterne serveren uten å måtte skrive inn passordet ditt.

Denne metoden fungerer ved å generere et par kryptografiske nøkler som brukes til godkjenning. Den private nøkkelen er lagret på klientenheten, og den offentlige nøkkelen overføres til hver ekstern server som du vil logge på. Den eksterne serveren må være konfigurert for å godta nøkkelgodkjenning.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Du vil bli bedt om å skrive inn en sikker passord. Enten du vil bruke passordfrase, er det opp til deg.

Når du har et nøkkelpar, kopier du den offentlige nøkkelen til den eksterne serveren:

ssh-copy-id username@hostname

Angi passordet for ekstern bruker, og den offentlige nøkkelen legges til filen for eksterne bruker authorized_keys .

Når nøkkelen er lastet opp, kan du logge deg på den eksterne serveren uten å bli bedt om et passord.

Ved å stille inn en nøkkelbasert autentisering, kan du forenkle påloggingsprosessen og øke den generelle serversikkerheten.

Port Videresending

SSH-tunneling eller videresending av SSH-port er en metode for å lage en kryptert SSH-forbindelse mellom en klient og en servermaskin som tjenesteporter kan videresendes gjennom.

SSH-videresending er nyttig for å transportere nettverksdata av tjenester som bruker en ukryptert protokoll, for eksempel VNC eller FTP, få tilgang til geobegrenset innhold eller omgå mellomliggende brannmurer. I utgangspunktet kan du videresende hvilken som helst TCP-port og tunnelere trafikken over en sikker SSH-tilkobling.

Det er tre typer SSH-portvideresending:

Lokal havnevideresending

Lokal port-videresending lar deg videresende en forbindelse fra klientverten til SSH-serververten og deretter til destinasjonsvertsporten.

Slik lager du en lokal port-videresending passerer -L alternativet til ssh klienten:

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Alternativet -f forteller ssh kommandoen til å kjøre i bakgrunnen og -N ikke å utføre en ekstern kommando.

Videresending av ekstern port

Videresending av ekstern port er det motsatte av lokal portvideresending. Den videresender en port fra serververten til klientverten og deretter til destinasjonsvertsporten.

Alternativet -L forteller ssh å opprette en videresending av ekstern port:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Videresending av dynamisk port

Videresending av dynamisk port oppretter en SOCKS proxy-server som tillater kommunikasjon på tvers av en rekke porter.

Slik lager du en dynamisk portvideresending (SOCKS) pass--alternativet til ssh-klienten:

ssh -D LOCAL_PORT -N -f username@hostname

For mer detaljert informasjon og trinn-for-trinn-instruksjon, sjekk artikkelen om hvordan du konfigurerer SSH-tunnel (port forwarding).

Konklusjon

For å koble til en ekstern server via SSH bruker du ssh kommandoen etterfulgt av det eksterne brukernavnet og vertsnavnet ( ssh username@hostname ).

Å vite hvordan du bruker ssh kommandoen er en essensiell for å administrere ekstern server.

ssh terminal