SSH: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
== ssh - Anslut till en fjärrdator över SSH ==
Kommandot `ssh` används för att ansluta till fjärrdatorer över SSH (Secure Shell) i ett Unix-liknande operativsystem.


== Secure Shell (SSH) ==
=== Syntax ===
Secure Shell (SSH) är ett kryptografiskt nätverksprotokoll som används för att säkert utföra kommandon över nätverk, hantera filer och utföra andra nätverkstjänster på fjärrdatorer.
ssh [ALTERNATIV] [användare@värd] [kommando]


=== Översikt ===
=== Beskrivning ===
SSH tillhandahåller en säker kanal i en osäker nätverksmiljö, vilket gör det möjligt för användare att logga in på fjärrsystem, överföra filer och dirigera nätverkstrafik.
Kommandot `ssh` används för att logga in på en fjärrdator och köra kommandon på den. SSH tillhandahåller en säker krypterad anslutning mellan två nätverksanslutna datorer.


=== Funktioner ===
=== Alternativ ===
* '''Krypterad kommunikation''': SSH använder stark kryptering för att skydda dataöverföringen från avlyssning och kapning.
Kommandot `ssh` stöder flera alternativ som kan användas för att justera hur anslutningen utförs:
* '''Autentisering''': SSH stöder flera autentiseringsmetoder, inklusive lösenord och kryptografiska nycklar.
* '''Porttunneling''': Möjliggör säker vidarekoppling av nätverksportar över en SSH-session.
* '''X11 forwarding''': Tillåter säker körning av grafiska applikationer installerade på fjärrvärdar.


=== SSH-protokollversioner ===
* -1 - Tvinga SSH-protokoll version 1.
* '''SSH-1''': Den ursprungliga versionen av SSH-protokollet, anses vara osäker och bör undvikas.
* -2 - Tvinga SSH-protokoll version 2.
* '''SSH-2''': Den förbättrade och mest använda versionen av SSH-protokollet, erbjuder förbättrad säkerhet och funktioner.
* -4 - Tvinga användning av IPv4-adresser.
* -6 - Tvinga användning av IPv6-adresser.
* -A - Vidarebefordra autentiseringsagentens anslutning.
* -a - Inaktivera vidarebefordran av autentiseringsagentens anslutning.
* -C - Begär komprimering av alla data.
* -D [bind_address:]port - Dynamiskt vidarebefordra TCP-port via en SOCKS-server.
* -E logfil - Skriv loggmeddelanden till den angivna filen.
* -f - Begär att ssh ska köras i bakgrunden.
* -i identitetsfil - Använd den angivna filen som identitetsfil (privat nyckel).
* -L [bind_address:]port:host:hostport - Vidarebefordra lokala port till fjärrvärd.
* -M - Använd huvudläge för master/slave-multiplexing.
* -N - Utför inte fjärrkommando.
* -o option - Ange alternativ i formatet `option=value`.
* -p port - Anslut till den angivna porten på fjärrvärden.
* -R [bind_address:]port:host:hostport - Vidarebefordra fjärrport till lokal värd.
* -T - Inaktivera pseudoterminalallokering.
* -t - Tvångsallokera en pseudoterminal.
* -v - Aktivera detaljerad utmatning.
* -X - Aktivera X11-fönster vidarebefordran.
* -x - Inaktivera X11-fönster vidarebefordran.
* -Y - Aktivera betrodd X11-fönster vidarebefordran.


=== SSH-baserade Protokoll ===
=== Exempel ===
* '''SFTP (SSH File Transfer Protocol)''': Ett säkert filöverföringsprotokoll som använder SSH för att överföra filer.
Här är några praktiska exempel som visar hur du kan använda `ssh`-kommandot:
* '''SCP (Secure Copy Protocol)''': Ett verktyg för att säkert kopiera filer mellan värdar på ett nätverk.


=== Användning ===
* För att ansluta till en fjärrdator:
SSH används av systemadministratörer för säker fjärrstyrning av servrar och nätverksutrustning och av användare som behöver säker tillgång till fjärrresurser.
<code>
ssh användare@värd
</code>


=== Säkerhetsoverväganden ===
* För att ansluta till en fjärrdator på en specifik port:
SSH bör konfigureras korrekt för att förhindra vanliga säkerhetsrisker, såsom avstängning av SSH-1-stöd, användning av starka lösenord och nycklar, och begränsning av åtkomst till betrodda värdar.
<code>
ssh -p 2222 användare@värd
</code>


= Teknisk nivå =
* För att köra ett kommando på en fjärrdator:
== Secure Shell (SSH) Teknisk Översikt ==
<code>
ssh användare@värd 'ls -l'
</code>


Secure Shell (SSH) är ett kryptografiskt nätverksprotokoll för säker kommunikation över osäkra nätverk. Det används för fjärradministration av servrar, säker filöverföring, och andra säkra nätverksoperationer.
* För att vidarebefordra en lokal port till en fjärrvärd:
<code>
ssh -L 8080:fjarrhost:80 användare@värd
</code>


=== Protokollflöde ===
* För att använda en specifik privat nyckel för autentisering:
<code>
ssh -i ~/.ssh/nyckel användare@värd
</code>


==== Sessionsetablering ====
* För att aktivera X11-fönster vidarebefordran:
* En SSH-klient initierar en anslutning till en SSH-server, vanligtvis över TCP-port 22.
<code>
* Klient och server utför en protokollhandskakning för att fastställa kompatibla versioner av SSH-protokollet och krypteringsalgoritmer.
ssh -X användare@värd
</code>


==== Nyckelutbyte ====
=== Skillnader mellan macOS och Linux ===
* Diffie-Hellman-nyckelutbyte används för att generera en delad hemlighet säkert.
Det finns några viktiga skillnader att tänka på när man använder `ssh`-kommandot på macOS jämfört med Linux:
* Servern presenterar sin offentliga nyckel för klienten för autentisering, vanligtvis verifierad mot en lista över kända värdar eller ett certifikat.


==== Användarautentisering ====
* Standardinstallationer: Både macOS och de flesta Linux-distributioner levereras med OpenSSH som standard, så `ssh`-kommandot fungerar på liknande sätt på båda plattformarna.
* Användare kan autentiseras med lösenord över den säkra anslutningen.
* Alternativ och funktioner: OpenSSH-versionerna på macOS och Linux kan ha små skillnader i de senaste funktionerna och alternativ beroende på versionen som är installerad. Det är bra att kontrollera `man ssh` på respektive system för att se vilka alternativ som är tillgängliga.
* Nyckelbaserad autentisering där klienten signerar en begäran med en privat nyckel och servern verifierar signaturen med den associerade offentliga nyckeln.
* Nyckelhantering: På både macOS och Linux används samma verktyg (som `ssh-keygen`) för att generera SSH-nycklar, men sökvägar och standardinställningar kan variera något.
* Andra former av autentisering, som multi-faktor autentisering, stöds också.


==== Krypterad Kommunikation ====
=== Skapa SSH-nycklar ===
* Symmetrisk kryptering används för att kryptera kommunikationen med hjälp av nycklar härledda från den delade hemligheten.
För att skapa en SSH-nyckel kan du använda kommandot `ssh-keygen`:
* Meddelandeautentiseringskoder (MAC) säkerställer integriteten av överförda data.


==== Tunneling och Port Forwarding ====
* För att skapa en ny SSH-nyckel med standardinställningar:
* SSH-tunneling möjliggör säker tunneling av nätverkstrafik.
<code>
* Port forwarding låter användare dirigera trafik genom den säkra SSH-anslutningen.
ssh-keygen
</code>


==== Session Management ====
Följande steg beskriver processen:
* Håller anslutningen aktiv genom att skicka keepalive-paket vid behov.
1. Kör kommandot `ssh-keygen`.
* Sessionen avslutas när användaren väljer att göra det, vilket stänger den säkra tunneln.
2. Du kommer att bli ombedd att ange en fil att spara nyckeln till (standard är `~/.ssh/id_rsa`).
3. Du kan välja att ange en lösenfras för extra säkerhet (rekommenderas).


=== Säkerhetsaspekter ===
* För att skapa en ny SSH-nyckel med ett specifikt filnamn och utan lösenfras:
SSH är designat för att vara säkert mot ett brett spektrum av nätverksattacker. Korrekt konfiguration och underhåll av SSH, inklusive användning av starka autentiseringsmetoder och regelbundna uppdateringar, är avgörande för att upprätthålla säkerheten.
<code>
[[Kategori:Linux Kommando]]
ssh-keygen -t rsa -b 4096 -f ~/.ssh/min_nyckel -N ""
[[Kategori:Protokoll]]
</code>
[[Kategori:Nätverk]]
 
Den här kommandot använder RSA-algoritmen med en nyckelstorlek på 4096 bitar och sparar nyckeln till `~/.ssh/min_nyckel` utan att kräva en lösenfras.
 
=== Felsökning ===
Om du får ett felmeddelande när du använder `ssh`, kontrollera följande:
 
* Att värden du försöker ansluta till är nåbar och att rätt DNS-namn eller IP-adress används.
* Att du har rättigheter att ansluta till fjärrdatorn och att rätt autentiseringsmetod används (lösenord eller nyckel).
* Att rätt port används och att den är öppen på fjärrdatorn.
* Att syntaxen för ditt kommando är korrekt. Kontrollera att du använder rätt alternativ och parametrar.
 
=== Se även ===
* [[ssh-keygen]] - Generera, hantera och konvertera autentiseringsnycklar.
* [[scp]] - Kopiera filer över SSH.
* [[sftp]] - SSH File Transfer Protocol, en säker filöverföringsprotokoll.
 
=== Källor ===
* [https://www.openssh.com/manual.html OpenSSH manual]
 
[[Kategori:Linuxkommandon]]

Nuvarande version från 26 maj 2024 kl. 08.56

ssh - Anslut till en fjärrdator över SSH

Kommandot `ssh` används för att ansluta till fjärrdatorer över SSH (Secure Shell) i ett Unix-liknande operativsystem.

Syntax

ssh [ALTERNATIV] [användare@värd] [kommando]

Beskrivning

Kommandot `ssh` används för att logga in på en fjärrdator och köra kommandon på den. SSH tillhandahåller en säker krypterad anslutning mellan två nätverksanslutna datorer.

Alternativ

Kommandot `ssh` stöder flera alternativ som kan användas för att justera hur anslutningen utförs:

  • -1 - Tvinga SSH-protokoll version 1.
  • -2 - Tvinga SSH-protokoll version 2.
  • -4 - Tvinga användning av IPv4-adresser.
  • -6 - Tvinga användning av IPv6-adresser.
  • -A - Vidarebefordra autentiseringsagentens anslutning.
  • -a - Inaktivera vidarebefordran av autentiseringsagentens anslutning.
  • -C - Begär komprimering av alla data.
  • -D [bind_address:]port - Dynamiskt vidarebefordra TCP-port via en SOCKS-server.
  • -E logfil - Skriv loggmeddelanden till den angivna filen.
  • -f - Begär att ssh ska köras i bakgrunden.
  • -i identitetsfil - Använd den angivna filen som identitetsfil (privat nyckel).
  • -L [bind_address:]port:host:hostport - Vidarebefordra lokala port till fjärrvärd.
  • -M - Använd huvudläge för master/slave-multiplexing.
  • -N - Utför inte fjärrkommando.
  • -o option - Ange alternativ i formatet `option=value`.
  • -p port - Anslut till den angivna porten på fjärrvärden.
  • -R [bind_address:]port:host:hostport - Vidarebefordra fjärrport till lokal värd.
  • -T - Inaktivera pseudoterminalallokering.
  • -t - Tvångsallokera en pseudoterminal.
  • -v - Aktivera detaljerad utmatning.
  • -X - Aktivera X11-fönster vidarebefordran.
  • -x - Inaktivera X11-fönster vidarebefordran.
  • -Y - Aktivera betrodd X11-fönster vidarebefordran.

Exempel

Här är några praktiska exempel som visar hur du kan använda `ssh`-kommandot:

  • För att ansluta till en fjärrdator:

ssh användare@värd

  • För att ansluta till en fjärrdator på en specifik port:

ssh -p 2222 användare@värd

  • För att köra ett kommando på en fjärrdator:

ssh användare@värd 'ls -l'

  • För att vidarebefordra en lokal port till en fjärrvärd:

ssh -L 8080:fjarrhost:80 användare@värd

  • För att använda en specifik privat nyckel för autentisering:

ssh -i ~/.ssh/nyckel användare@värd

  • För att aktivera X11-fönster vidarebefordran:

ssh -X användare@värd

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `ssh`-kommandot på macOS jämfört med Linux:

  • Standardinstallationer: Både macOS och de flesta Linux-distributioner levereras med OpenSSH som standard, så `ssh`-kommandot fungerar på liknande sätt på båda plattformarna.
  • Alternativ och funktioner: OpenSSH-versionerna på macOS och Linux kan ha små skillnader i de senaste funktionerna och alternativ beroende på versionen som är installerad. Det är bra att kontrollera `man ssh` på respektive system för att se vilka alternativ som är tillgängliga.
  • Nyckelhantering: På både macOS och Linux används samma verktyg (som `ssh-keygen`) för att generera SSH-nycklar, men sökvägar och standardinställningar kan variera något.

Skapa SSH-nycklar

För att skapa en SSH-nyckel kan du använda kommandot `ssh-keygen`:

  • För att skapa en ny SSH-nyckel med standardinställningar:

ssh-keygen

Följande steg beskriver processen: 1. Kör kommandot `ssh-keygen`. 2. Du kommer att bli ombedd att ange en fil att spara nyckeln till (standard är `~/.ssh/id_rsa`). 3. Du kan välja att ange en lösenfras för extra säkerhet (rekommenderas).

  • För att skapa en ny SSH-nyckel med ett specifikt filnamn och utan lösenfras:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/min_nyckel -N ""

Den här kommandot använder RSA-algoritmen med en nyckelstorlek på 4096 bitar och sparar nyckeln till `~/.ssh/min_nyckel` utan att kräva en lösenfras.

Felsökning

Om du får ett felmeddelande när du använder `ssh`, kontrollera följande:

  • Att värden du försöker ansluta till är nåbar och att rätt DNS-namn eller IP-adress används.
  • Att du har rättigheter att ansluta till fjärrdatorn och att rätt autentiseringsmetod används (lösenord eller nyckel).
  • Att rätt port används och att den är öppen på fjärrdatorn.
  • Att syntaxen för ditt kommando är korrekt. Kontrollera att du använder rätt alternativ och parametrar.

Se även

  • ssh-keygen - Generera, hantera och konvertera autentiseringsnycklar.
  • scp - Kopiera filer över SSH.
  • sftp - SSH File Transfer Protocol, en säker filöverföringsprotokoll.

Källor