SSH

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Secure Shell (SSH)

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.

Översikt

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.

Funktioner

  • Krypterad kommunikation: SSH använder stark kryptering för att skydda dataöverföringen från avlyssning och kapning.
  • 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

  • SSH-1: Den ursprungliga versionen av SSH-protokollet, anses vara osäker och bör undvikas.
  • SSH-2: Den förbättrade och mest använda versionen av SSH-protokollet, erbjuder förbättrad säkerhet och funktioner.

SSH-baserade Protokoll

  • SFTP (SSH File Transfer Protocol): Ett säkert filöverföringsprotokoll som använder SSH för att överföra filer.
  • SCP (Secure Copy Protocol): Ett verktyg för att säkert kopiera filer mellan värdar på ett nätverk.

Användning

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.

Säkerhetsoverväganden

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.

Teknisk nivå

Secure Shell (SSH) Teknisk Översikt

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.

Protokollflöde

Sessionsetablering

  • En SSH-klient initierar en anslutning till en SSH-server, vanligtvis över TCP-port 22.
  • Klient och server utför en protokollhandskakning för att fastställa kompatibla versioner av SSH-protokollet och krypteringsalgoritmer.

Nyckelutbyte

  • Diffie-Hellman-nyckelutbyte används för att generera en delad hemlighet säkert.
  • 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

  • Användare kan autentiseras med lösenord över den säkra anslutningen.
  • Nyckelbaserad autentisering där klienten signerar en begäran med en privat nyckel och servern verifierar signaturen med den associerade offentliga nyckeln.
  • Andra former av autentisering, som multi-faktor autentisering, stöds också.

Krypterad Kommunikation

  • Symmetrisk kryptering används för att kryptera kommunikationen med hjälp av nycklar härledda från den delade hemligheten.
  • Meddelandeautentiseringskoder (MAC) säkerställer integriteten av överförda data.

Tunneling och Port Forwarding

  • SSH-tunneling möjliggör säker tunneling av nätverkstrafik.
  • Port forwarding låter användare dirigera trafik genom den säkra SSH-anslutningen.

Session Management

  • Håller anslutningen aktiv genom att skicka keepalive-paket vid behov.
  • Sessionen avslutas när användaren väljer att göra det, vilket stänger den säkra tunneln.

Säkerhetsaspekter

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.