Hoppa till innehĂĄll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Allt du behöver veta om SSH-nyckelhantering

SSH nyckelhantering

SSH-nyckelhantering är praxisen att säkert kontrollera SSH-nycklar under hela deras livscykel: generering, distribution, lagring, rotation och återkallelse. SSH-nycklar autentiserar åtkomst till fjärrsystem med hjälp av ett offentligt/privat nyckelpar. Eftersom de ger kraftfull åtkomst och inte löper ut är det viktigt att hantera dem väl för att förhindra nyckelspridning, kompromettering och obehörig åtkomst.

SSH-nyckelhantering är disciplinen att styra SSH-nycklar under hela deras livscykel, från generering och distribution till lagring, rotation och återkallelse, över alla användare och system i en organisation. SSH-nycklar autentiserar åtkomst till fjärrsystem med ett offentligt/privat nyckelpar istället för lösenord. Eftersom de är kraftfulla och inte löper ut av sig själva, är det disciplinerad hantering som hindrar dem från att bli en allvarlig säkerhetsrisk.

Key Takeaways

  • SSH (Secure Shell) är ett kryptografiskt protokoll för säker ĂĄtkomst till fjärrsystem över ett opĂĄlitligt nätverk, med hjälp av kryptografi med offentlig nyckel.
  • SSH-nycklar autentiserar användare med ett offentligt/privat nyckelpar, en mycket starkare metod än lösenord, immun mot nätfiske och brute force.
  • SSH-nyckelhantering täcker hela livscykeln: identifiering, generering, lagring, rotation och ĂĄterkallelse, styrd av policy.
  • Viktiga risker inkluderar stöld av privata nycklar, nyckelspridning, bristande utgĂĄngsdatum, svaga lösenfraser, dĂĄlig nyckelgenerering och luckor i granskningen.
  • Bästa praxis: identifiera och konsolidera nycklar, tillämpa policy (RBAC, gruppering), generera starka nycklar (ED25519 eller RSA 2048/4096), rotera regelbundet och övervaka kontinuerligt.

Vad är SSH?

Secure Shell (SSH) är ett kryptografiskt protokoll som gör det möjligt att säkert nå nätverkstjänster via en osäker kommunikationskanal. Det används främst för säkert datautbyte, inloggning och fjärradministration mellan två maskiner. SSH använder kryptografi med offentlig nyckel för att tillhandahålla ömsesidig, säker autentisering av klienter och servrar över otillförlitliga nätverk, och det är som standard inbyggt i operativsystem som Linux, Unix och macOS.

Windows har nu stöd för SSH direkt via PowerShell och OpenSSH, så tredjepartsverktyg som PuTTY behövs inte längre: du kan skapa SSH-anslutningar direkt från Windows Terminal eller PowerShell. Det inbyggda OpenSSH-projektet täcker PuTTYs fulla funktionalitet utan någon installation.

Viktiga funktioner i SSH

  • kryptering: SSH krypterar data under överföring, sĂĄ även om den avlyssnas kan obehöriga inte läsa den. kryptering Algoritmer skyddar känslig information som inloggningsuppgifter och kommandon.
  • Authentication: SSH autentiserar med hjälp av offentlig nyckel kryptografi, vilket är mycket säkrare än lösenord. Endast en användare med rätt privat nyckel kan upprätta en anslutning, vilket skyddar mot obehörig ĂĄtkomst och brute force.
  • Integritet: SSH använder kryptografiska hashfunktioner för att verifiera att data inte har manipulerats under överföring, vilket skyddar mot manipulation och man-in-the-middle-attacker.

Skräddarsydda krypteringstjänster

Vi utvärderar, strategiserar och implementerar krypteringsstrategier och lösningar.

Vad är SSH-nycklar?

En SSH-nyckel är en kryptografisk nyckel som används för att autentisera säker kommunikation mellan system via SSH-protokollet. SSH-nycklar är ett mycket säkert alternativ till lösenordsbaserad autentisering, med hjälp av ett offentligt/privat nyckelpar som eliminerar risken för att autentiseringsuppgifterna nätfiskas eller brute-forceras. Den privata nyckeln förblir säkert på användarens system, eller säkrare i en hårdvarusäkerhetsmodul ( HSM ), medan den offentliga nyckeln delas med servern.

  • Offentlig nyckel: Tillgänglig öppet pĂĄ servern; den behöver inte vara hemlig. Vid SSH-nyckelhantering används den publika nyckeln för att verifiera klientens identitet gentemot servern.
  • Privat nyckel: HĂĄlls hemlig och endast tillgänglig för dess ägare, lagrad pĂĄ användarens enhet eller i en HSM. Användaren bevisar sin identitet med den när en anslutning initieras.

Hur fungerar SSH?

SSH kombinerar kryptografi med offentliga nycklar, kryptering och autentisering för att skydda datas sekretess och integritet mellan system. Anslutningen upprättas i dessa steg:

  1. Initiera anslutningen: Klienten begär en anslutning till servern via TCP-port 22 (standard-SSH-porten, som kan ändras till en icke-standardport för ökad säkerhet).
  2. Servern skickar sin publika nyckel och stödda algoritmer: Servern returnerar sin publika värdnyckel (för att verifiera dess identitet och påbörja kryptering) och en lista över krypterings- och hashalgoritmer som stöds; en delad uppsättning väljs för sessionen.
  3. Klienten verifierar servern: Klienten kontrollerar serverns publika nyckel mot dess kända värdfil. Om den matchar är servern betrodd; om inte, tillfrågas användaren om den ska lita på och lagra den nya nyckeln.
  4. Nyckelutbyte: Klienten och servern upprättar en delad sessionsnyckel med hjälp av ett nyckelutbyte som Diffie-Hellman eller den mer effektiva Elliptic-Curve Diffie-Hellman (ECDH), utan att någonsin överföra själva nyckeln.
  5. Säker kanal upprättad: Båda sidor använder den delade sessionsnyckeln för symmetrisk kryptering, som krypterar och dekrypterar alla meddelanden under sessionen.
  6. Klientautentisering: Klienten bevisar sin identitet, helst med ett SSH-nyckelpar (den privata nyckeln som lagras lokalt eller i en HSM, den matchande publika nyckeln som redan finns på servern) snarare än ett lösenord.
  7. Session etablerad: Klienten kan nu köra kommandon, överföra filer eller skapa krypterade tunnlar (portvidarebefordran) över anslutningen.
  8. Sessionsintegritet bibehålls: Varje paket innehåller en meddelandeautentiseringskod (MAC), genererad med en hashalgoritm som t.ex. SHA-256 eller SHA-512 och en delad hemlighet, så att mottagaren kan upptäcka eventuell manipulering.
  9. Sessionsavslutning: När sessionen avslutas kasseras den delade sessionsnyckeln, så ingen ytterligare kommunikation är möjlig utan att en ny anslutning upprättas.

SSH-autentiseringsmetoder

SSH stöder två huvudsakliga sätt att verifiera en klients identitet innan åtkomst beviljas.

Lösenordsbaserad autentisering

Den enklaste metoden: användaren anger ett användarnamn och lösenord genom den krypterade tunneln, och åtkomst beviljas om de matchar. Den är enkel att konfigurera och kräver ingen extra programvara eller nyckelhantering, men det är det svagare alternativet.

  • fördelar: enkel att installera och använda; ingen ytterligare programvara eller nyckelhantering krävs, vilket gör den tillgänglig och billig.
  • Nackdelar: sĂĄrbar för svaga eller ĂĄteranvända lösenord och brute force; kräver frekventa lösenordsändringar som frustrerar användare; mottaglig för nätfiske, inloggningsuppgifter och keyloggers; och är helt beroende av att överföringskanalen förblir säker.

SSH-nyckelparsautentisering

Den säkrare och mer använda metoden, baserad på ett kryptografiskt nyckelpar. Flödet: klienten initierar anslutningen; servern hittar den matchande publika nyckeln i sin authorized_keys-fil, krypterar en utmaning med den och skickar den; klienten dekrypterar utmaningen med sin privata nyckel och returnerar den; servern verifierar svaret och beviljar åtkomst om det matchar.

  • fördelar: mycket starkare säkerhet (privata nycklar är extremt svĂĄra att bruteforcea); inga lösenord överförs över nätverket; och bekvämt för automatisering som skript och cron-jobb när nycklarna väl är konfigurerade.
  • Nackdelar: Om en privat nyckel komprometteras fĂĄr en angripare ägarens ĂĄtkomst, sĂĄ nycklarna mĂĄste krypteras och förvaras säkert; och hanteringen av mĂĄnga nyckelpar (nyckelspridning) kräver en tydlig process för distribution, rotation och ĂĄterkallelse.

SSH vs SSL/TLS-certifikat: Vad är skillnaden?

Både SSH och SSL/TLS är kryptografiska protokoll som säkrar nätverkskommunikation, men de tjänar olika syften: SSH säkrar fjärrsystemåtkomst mellan två maskiner, medan SSL/TLS säkrar kommunikationen mellan en webbläsare och en webbserver.

LeveransSSHSSL / TLS
SyfteSäker fjärråtkomst till systemet och filöverföringSäker webbkommunikation och datautbyte
AutentiseringAutentisering med offentlig nyckel (klient och server)Certifikatbaserat (server, valfritt klient)
krypteringSymmetrisk kryptering efter nyckelutbyteSymmetrisk kryptering efter certifikatbaserat nyckelutbyte
NyckelhanteringSjälvgenererade SSH-nycklar, lagrade lokalt eller i en HSMCertifikat utfärdade av betrodda CA
AnvändningsområdenFjärrkommandokörning, filöverföring, portvidarebefordranSäkra webbplatser, e-post, API:er
De viktigaste hotenNyckelstöld eller kompromissOseriösa certifikatutfärdare, bedrägliga certifikat, MITM-attacker

Potentiella risker med SSH-nyckelhantering

  • Stöld av privat nyckel: Om en angripare fĂĄr tag pĂĄ en privat nyckel kan de utge sig för att vara dess ägare och fĂĄ tillgĂĄng till systemet.
  • Nyckelutbredning: Med ĂĄren mĂĄngdubblas antalet nycklar tills de inte längre kan spĂĄras, och glömda nycklar blir attackvektorer.
  • Brist pĂĄ utgĂĄngsdatum: SSH-nycklar upphör inte att gälla som TLS-certifikat, sĂĄ gamla nycklar lagras kvar, roteras inte och raderas sällan.
  • SSH-baserade attacker: Svaga algoritmer eller oskyddade privata nycklar ökar risken för attacker; använd alltid starka algoritmer och lösenfraser.
  • Svagt eller inget lösenord: En privat nyckel utan lösenfras kan användas omedelbart om den blir stulen; en lösenfras lägger till ett kritiskt skyddslager.
  • DĂĄlig nyckelgenerering: FörĂĄldrade algoritmer eller korta nyckellängder försvagar nycklar. Undvik DSA (1024-bitars); använd ED25519 eller RSA med en tillräcklig längd.
  • Brist pĂĄ revision och övervakning: Utan övervakning upptäcks inte missbruk av nycklar, överblivna nycklar frĂĄn tidigare anställda förblir aktiva och det finns inget ansvar för vem som använder vilken nyckel.

Vidarebefordran av SSH-agent

En SSH-agent lagrar din dekrypterade privata nyckel i minnet så att du låser upp den en gång istället för att ange ditt lösenfras varje gång. Vidarebefordran av SSH-agenter utökar detta så att du kan autentisera mot en kedja av servrar med din lokala privata nyckel utan att kopiera den till var och en: autentiseringsförfrågningar från fjärrservrar vidarebefordras tillbaka till din lokala agent. Om till exempel en fjärrserver behöver hämta kod från GitHub, låter agentvidarebefordran din lokala maskin svara på GitHubs autentiseringsutmaning, så att nyckeln aldrig lämnar din maskin.

Det är bekvämt, men det medför verkliga risker:

  • Agentkapning: Om den första fjärrservern i kedjan komprometteras kan en angripare där kapa den vidarebefordrade agenten för att autentisera mot andra servrar, utan att nĂĄgonsin inneha den privata nyckeln.
  • Otillförlitliga servrar: Vidarebefordran exponerar dina agentuppgifter för fjärrservern, sĂĄ att en angripare som kontrollerar en opĂĄlitlig server kan utnyttja dem. Vidarebefordra endast till servrar du litar pĂĄ.

Bästa praxis för SSH-nyckelhantering

1. Upptäckt och konsolidering

Börja med att hitta varje nyckel och var den finns, koppla varje nyckel till sin användare och server, spåra användningen och avaktivera avgångna anställdas nycklar. Att konsolidera nycklar till ett centralt arkiv minskar attackytan och förhindrar enskilda nycklar och spridning.

  • Korrekt nyckelskanning: Skanna efter SSH-nycklar överallt där de kan finnas: bärbara och stationära datorer för utvecklare, lokala servrar, molninstanser och virtuella automationsmaskiner. Var och en är en potentiell nyckelförvaring.
  • Korrekt nyckelförvaring: Förvara upptäckta nycklar i ett centraliserat, uppdaterat inventarium, en enda sanningskälla som visar vilka nycklar som tillhör vem, vad de har ĂĄtkomst till och hur de används, vilket gör rotation och ĂĄterkallelse mycket enklare.
  • Automatisering i upptäckt: Automatiserad identifiering skannar systematiskt alla enheter, servrar och molnmiljöer, vilket undviker luckor och fel som uppstĂĄr vid manuella sökningar.

2. Utformning och tillämpning av policyer

Definiera policyer som täcker vem som kan skapa nycklar, hur nycklar skapas och lagras, hur länge de gäller innan rotation, när de raderas och maximal åtkomst en nyckel ska ha.

  • Gruppera liknande nycklar: Gruppera nycklar efter funktion (administrativ, applikation, utvecklare) sĂĄ att policyer och ĂĄtkomstkontroller mappas tydligt till varje grupp.
  • RBAC-implementering: Rollbaserad ĂĄtkomstkontroll ger varje användare endast den ĂĄtkomst deras roll behöver, vilket minskar obehörig ĂĄtkomst och knyter nycklar till organisationsroller.
  • Skapande av anpassad policy: Definiera standarder för nyckelgenerering (längder och algoritmer), regelbunden rotation och tidsbunden ĂĄtkomst som automatiskt ĂĄterkallas efter en viss period.

3. Generera starka nycklar

Välj en stark algoritm och tillräcklig nyckellängd. ED25519 (256-bitars) och RSA (2048 eller 4096-bitars) rekommenderas båda starkt för sin motståndskraft mot brute force. Undvik föråldrade, sårbara algoritmer som DSA.

4. Nyckelrotation

Rotera nycklar efter en viss tids användning, och byt ut hela nyckelparet. Rotation begränsar det tidsfönster en angripare har för att missbruka en komprometterad nyckel och håller åtkomsten under kontroll.

  • Rotationsregelbundenhet: Sätt upp ett periodiskt schema (till exempel var 30:e till 45:e dag) sĂĄ att gamla eller potentiellt sĂĄrbara nycklar inte ligger kvar.
  • Automatisering i rotation: Genom att automatisera rotationen elimineras felen vid manuellt utbyte i stor skala, skapa nya nycklar, uppdatera databaser och driftsätta till rätt system med minimal mänsklig inblandning, samtidigt som den centrala inventeringen hĂĄlls korrekt.

5. Kontinuerlig övervakning och revision

Kontinuerligt övervaka och granska nycklar för att bekräfta att de roteras och raderas i tid, vilket eliminerar nyckelspridning och solo-nycklar.

  • Aktivera SSH-loggning: Detaljerade loggar lĂĄter administratörer spĂĄra all SSH-aktivitet och snabbt upptäcka onormal eller obehörig ĂĄtkomst.
  • Aviseringar i realtid: Mata in SSH-loggar i ett SIEM-system för att korrelera aktivitet i realtid och varna för misstänkta mönster, sĂĄsom ovanliga inloggningstider eller upprepade försök.
  • Granskar SSH-ĂĄtkomst: Granska regelbundet ĂĄtkomsten sĂĄ att endast aktiva, auktoriserade nycklar finns kvar, och ta bort nycklar som blivit överblivna pĂĄ grund av avgĂĄngar eller rollbyten.

SSH och post-kvantövergången
SSH är beroende av kryptografi med publika nycklar för nyckelutbyte och autentisering, den typ av kryptografi som en framtida kvantdator skulle kunna bryta. SSH-ekosystemet anpassar sig redan: nyare OpenSSH-versioner använder som standard post-kvant hybridnyckelutbyte, vilket kombinerar ett klassiskt elliptiskt kurvutbyte med NIST-standardiserad ML-KEM (FIPS 203), så en session förblir säker så länge någon av komponenterna fungerar. Detta är viktigt nu på grund av skörda-nu-dekryptera-senare attacker, där trafik som fångas upp idag dekrypteras när kvantberäkningar mognar. Välhanterade SSH-nycklar gör denna övergång mycket smidigare: en organisation som redan upptäcker, inventerar och roterar sina nycklar kan använda post-kvantalgoritmer utan att behöva kryptera. ML-KEM är den SSH-relevanta algoritmen här, eftersom den skyddar nyckelutbytet.

Skräddarsydda krypteringstjänster

Vi utvärderar, strategiserar och implementerar krypteringsstrategier och lösningar.

Hur krypteringskonsulting hjälper

Att bygga ett effektivt SSH-nyckelhanteringsprogram, identifiering, policy, stark nyckelgenerering, rotation och övervakning är vad Encryption Consultings krypteringsrådgivningstjänster stöder, med utvärderingar och utbildning som täcker SSH och nyckelhantering över AWS, Azure och Google Cloud, samt anpassning till branschstandarder. För att automatisera SSH-nyckellivscykeln i stor skala hanterar EC:s SSH Secure identifiering, rotation och policytillämpning. Backas upp av ISO/IEC 27001:2022 och SOC 2-certifierade metoder.

Vanliga frĂĄgor om partihandel med mat och dryck

Vad är SSH-nyckelhantering?

SSH-nyckelhantering är praxisen att säkert kontrollera SSH-nycklar under hela deras livscykel, från generering och distribution till lagring, rotation och återkallelse, för varje användare och system i en organisation. SSH-nycklar autentiserar åtkomst till fjärrsystem med hjälp av ett offentligt/privat nyckelpar istället för lösenord. Eftersom de ger kraftfull åtkomst och inte löper ut av sig själva, förhindrar disciplinerad hantering nyckelspridning, kompromettering och obehörig åtkomst, och håller organisationen efterlevande.

Hur autentiserar SSH-nycklar en användare?

SSH-nyckelautentisering använder ett offentligt/privat nyckelpar. Den offentliga nyckeln finns på servern i en authorized_keys-fil, och den privata nyckeln finns kvar hos användaren, på deras enhet eller i en HSM. Under inloggning krypterar servern en utmaning med den offentliga nyckeln; endast den matchande privata nyckeln kan dekryptera den och svara korrekt, vilket bevisar användarens identitet. Inget lösenord överförs, vilket gör metoden motståndskraftig mot nätfiske och brute-force-attacker.

Vad är skillnaden mellan SSH och SSL/TLS?

SSH och SSL/TLS är båda kryptografiska protokoll men tjänar olika syften. SSH säkrar fjärråtkomst mellan två maskiner, för uppgifter som fjärrkörning av kommandon, filöverföring och portvidarebefordran, och använder självgenererade nyckelpar. SSL/TLS säkrar kommunikationen mellan en webbläsare och en server, för webbplatser, e-post och API:er, och förlitar sig på certifikat utfärdade av betrodda certifikatutfärdare. SSH:s största hot är nyckelstöld; SSL/TLS står inför oärliga certifikatutfärdare och bedrägliga certifikat.

Vilka är de bästa metoderna för SSH-nyckelhantering?

De viktigaste bästa praxisen är: upptäck och konsolidera alla nycklar till en central inventering; skapa och tillämpa policyer med rollbaserad åtkomstkontroll och nyckelgruppering; generera starka nycklar med ED25519 eller RSA (2048 eller 4096-bitars) och undvik svaga algoritmer som DSA; rotera nycklar regelbundet och automatiskt och ersätt hela paret; och kontinuerligt övervaka och granska nycklar, helst med SSH-loggning som matas in i en SIEM för realtidsaviseringar.

Vilken algoritm ska jag använda för SSH-nycklar?

De starkast rekommenderade valen är ED25519, som erbjuder utmärkt säkerhet med en kompakt 256-bitarsnyckel, och RSA med en 2048- eller 4096-bitarsnyckel. Båda motstår brute-force-attacker väl. Äldre algoritmer som DSA (särskilt 1024-bitars) är föråldrade och bör undvikas. Framöver antar SSH-ekosystemet post-kvantumnyckelutbyte med ML-KEM, så att välja moderna, välstödda algoritmer idag gör också den slutliga post-kvantumövergången enklare.

Vad är vidarebefordran av SSH-agenter och är det säkert?

Med vidarebefordran av SSH-agenter kan du autentisera via en kedja av servrar med din lokala privata nyckel utan att kopiera den till varje server. Autentiseringsförfrågningar vidarebefordras tillbaka till din lokala SSH-agent. Det är bekvämt, särskilt för uppgifter som att hämta kod från GitHub via en fjärrserver, men det medför risker: om en server i kedjan komprometteras kan en angripare kapa den vidarebefordrade agenten för att autentisera någon annanstans. Använd endast vidarebefordran av agenter med servrar som du litar fullt ut på.

Bygg ett komplett SSH-nyckelhanteringsprogram

Från identifiering till rotation till övervakning är det att hantera SSH-nycklar på rätt sätt det som håller fjärråtkomsten säker. För en kortfattad översikt, se vår kompletterande guide om SSH-nyckelhantering. Utforska Encryption Consultings krypteringsrådgivningstjänster för att utvärdera och bygga ditt program, med SSH Secure för att automatisera livscykeln i stor skala.