Android

Ssh-kommando

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

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

Innehållsförteckning:

Anonim

Secure Shell (SSH) är ett kryptografiskt nätverksprotokoll som används för en krypterad anslutning mellan en klient och en server. Ssh-klienten skapar en säker anslutning till SSH-servern på en fjärrmaskin. Den krypterade anslutningen kan användas för att köra kommandon på servern, X11-tunneling, port vidarebefordran och mer.

Det finns ett antal SSH-klienter tillgängliga både gratis och kommersiella, med OpenSSH som den mest använda klienten. Det är tillgängligt på alla större plattformar, inklusive Linux, OpenBSD, Windows, macOS och andra.

, kommer vi att förklara hur man använder OpenSSH-kommandoradsklienten ( ssh ) för att logga in på en fjärrmaskin och köra kommandon eller utföra andra operationer.

Installera OpenSSH Client

OpenSSH-klientprogrammet kallas ssh och kan anropas från terminalen. OpenSSH-klientpaketet tillhandahåller också andra SSH-verktyg som scp och sftp som installeras bredvid ssh kommandot.

Installera OpenSSH Client på Linux

OpenSSH-klienten är förinstallerad på de flesta Linux-distributioner som standard. Om ditt system inte har ssh-klienten installerad kan du installera den med hjälp av din pakethanterare för din distribution.

Installera OpenSSH på Ubuntu och Debian

sudo apt update sudo apt install openssh-client

Installera OpenSSH på CentOS och Fedora

sudo dnf install openssh-clients

Installera OpenSSH Client på Windows 10

De flesta Windows-användare använder Putty för att ansluta till en fjärrmaskin via SSH. De senaste versionerna av Windows 10 inkluderar dock en OpenSSH-klient och server. Båda paketen kan installeras via GUI eller PowerShell.

För att hitta det exakta namnet på OpenSSH-paketet skriver du följande kommando:

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

Kommandot bör returnera något liknande:

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

När du vet att paketnamnet installerar det genom att köra:

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

När framgången ser ut kommer resultatet att se ut så här:

Path: Online: True RestartNeeded: False

Installera OpenSSH Client på macOS

macOS levereras med OpenSSH-klienten installerad som standard.

Hur man använder ssh kommandot

Följande krav måste uppfyllas för att kunna logga in på en fjärrmaskin via SSH:

  • En SSH-server måste köras på fjärrmaskinen. SSH-porten måste vara öppen i fjärrmaskinens brandvägg. Du måste känna till användarnamnet och lösenordet för fjärrkontot. Kontot måste ha rätt behörigheter för fjärrinloggning.

Den grundläggande syntaxen för ssh kommandot är som följer:

ssh:HOST

Om du ssh använda ssh kommandot öppnar du Terminal eller PowerShell och skriver ssh följt av fjärrvärdnamnet:

ssh ssh.linuxize.com

När du ansluter till en fjärrmaskin via SSH för första gången ser du ett meddelande som nedan.

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)?

Varje värd har ett unikt fingeravtryck som lagras i ~/.ssh/known_hosts .

Skriv yes att lagra det avlägsna fingeravtrycket så uppmanas du att ange ditt lösenord.

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

När du anger lösenordet kommer du att loggas in på fjärrmaskinen.

När användarnamnet inte ges, använder ssh kommandot det nuvarande systeminloggningsnamnet.

Om du vill logga in som en annan användare anger du användarnamn och värd i följande format:

ssh username@hostname

Användarnamnet kan också anges med alternativet -l :

ssh -l username hostname

Som standard, när ingen port anges, kommer SSH-klienten att försöka ansluta till fjärrservern på port 22. På vissa servrar ändrar administratörer standard SSH-porten för att lägga till ett extra lager av säkerhet till servern genom att minska risken för automatiserade attacker.

För att ansluta till en port som inte är standard, använd alternativet -p att ange porten:

ssh -p 5522 username@hostname

ssh -v username@hostname

Använd -vv eller -vvv -vv -vvv .

Kommandot ssh accepterar ett antal alternativ.

För en fullständig lista över alla alternativ, läs ssh man-sidan genom att skriva man ssh i din terminal.

SSH-konfigurationsfil

OpenSSH-klienten läser alternativen som anges i konfigurationsfilen per användare ( ~/.ssh/config ). I den här filen kan du lagra olika SSH-alternativ för varje fjärrmaskin du ansluter till.

Ett exempel på SSH-konfigurering visas nedan:

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

När du åberopar ssh-klienten genom att skriva ssh dev kommer kommandot att läsa ~/.ssh/config och använda anslutningsinformationen som är specificerade för dev-värden. I detta exempel är ssh dev ekvivalent med följande:

ssh -p 4422 [email protected]

Mer information finns i SSH-konfigurationsfilen.

Autentisering av offentlig nyckel

SSH-protokollet stöder olika autentiseringsmekanismer.

Den offentliga nyckelbaserade autentiseringsmekanismen låter dig logga in på fjärrservern utan att behöva skriva ditt lösenord.

Den här metoden fungerar genom att generera ett par kryptografiska nycklar som används för autentisering. Den privata nyckeln lagras på klientenheten och den offentliga nyckeln överförs till varje fjärrserver som du vill logga in. Fjärrservern måste konfigureras för att acceptera nyckelautentisering.

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

Du blir ombedd att skriva en säker lösenfras. Oavsett om du vill använda lösenfras är det upp till dig.

När du har ditt nyckelpar, kopierar du den allmänna nyckeln till fjärrservern:

ssh-copy-id username@hostname

Ange fjärranvändarlösenordet och den offentliga nyckeln läggs till filen för authorized_keys autoriserade_tangenter.

När nyckeln laddas upp kan du logga in på fjärrservern utan att bli ombedd ett lösenord.

Genom att ställa in en nyckelbaserad autentisering kan du förenkla inloggningsprocessen och öka den övergripande serversäkerheten.

Vidarebefordran

SSH-tunnling eller vidarebefordran av SSH-port är en metod för att skapa en krypterad SSH-anslutning mellan en klient och en servermaskin genom vilken serviceporter kan vidarebefordras.

SSH-vidarebefordran är användbar för att transportera nätverksdata för tjänster som använder ett okrypterat protokoll, till exempel VNC eller FTP, åtkomst till geobegränsat innehåll eller kringgå mellanliggande brandväggar. I princip kan du vidarebefordra alla TCP-portar och tunnelna trafiken över en säker SSH-anslutning.

Det finns tre typer av SSH-port vidarebefordran:

Lokal hamnspedition

Med lokal port vidarebefordran kan du vidarebefordra en anslutning från klientvärden till SSH-servern och sedan till destinationsvärdporten.

För att skapa en lokal port-vidarebefordran, passera -L alternativet till ssh klienten:

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

Alternativet -f berättar för ssh kommandot att köra i bakgrunden och -N inte utföra ett fjärrkommando.

Vidarebefordran av fjärrport

Vidarebefordran av fjärr är motsatsen till lokal hamn vidarebefordran. Den vidarebefordrar en port från servervärd till klientvärd och sedan till destinationsvärdport.

Alternativet -L berättar för ssh att skapa en vidarebefordran av porten:

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

Dynamisk port vidarebefordran

Dynamisk port vidarebefordran skapar en SOCKS-proxyserver som tillåter kommunikation över flera portar.

För att skapa en dynamisk port-vidarebefordran (SOCKS) skicka alternativet -D till ssh-klienten:

ssh -D LOCAL_PORT -N -f username@hostname

För mer detaljerad information och steg-för-steg-instruktioner, kolla artikeln om hur du ställer in SSH-tunneln (Port Forwarding).

Slutsats

För att ansluta till en fjärrserver via SSH använd ssh kommandot följt av fjärrnamnet och värdnamnet ( ssh username@hostname ).

Att veta hur man använder ssh kommandot är ett viktigt för att hantera fjärrservern.

ssh terminal