SSH ТУННЕЛЬ ► Линуксовые Фишечки #19
Innehållsförteckning:
- Installera OpenSSH Client
- Installera OpenSSH Client på Linux
- Installera OpenSSH på Ubuntu och Debian
- Installera OpenSSH på CentOS och Fedora
- Installera OpenSSH Client på Windows 10
- Installera OpenSSH Client på macOS
- Hur man använder
sshkommandot - SSH-konfigurationsfil
- Vidarebefordran
- Lokal hamnspedition
- Vidarebefordran av fjärrport
- Dynamisk port vidarebefordran
- Slutsats
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.
Gratis SSH-klienter för Windows 10/8/7
Secure Shell eller SSH är ett program som låter dig logga in på en fjärrmaskin, utföra kommandon och flytta filer. Kontrollera den här gratis SSH-klientprogramvaran för Windows.
Hur man ställer in ssh-tunneling för att kringgå en brandvägg
En brandvägg är bra, men om det hindrar dig från att göra något är SSH-tunneln ett bra alternativ att utforska.
Hur man ändrar ssh-porten i Linux
Som standard lyssnar SSH på port 22. Ändra standard SSH-port lägger till ett extra lager av säkerhet till din server genom att minska risken för automatiska attacker. Denna handledning förklarar hur du ändrar standard SSH-porten i Linux.







