Android

Ssh-kommando

PuTTY/SSH Intro Tutorial

PuTTY/SSH Intro Tutorial

Indholdsfortegnelse:

Anonim

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.

ssh terminal