Hemsida » hur » Lär Ins och Out of OpenSSH på din Linux-dator

    Lär Ins och Out of OpenSSH på din Linux-dator

    Vi har lockat SSHs dygder många gånger, både för säkerhet och fjärråtkomst. Låt oss ta en titt på servern själv, några viktiga "underhåll" aspekter, och några quirks som kan lägga turbulens till en annars smidig ritt.

    Medan vi har skrivit den här guiden med Linux i åtanke kan detta också gälla OpenSSH i Mac OS X och Windows 7 via Cygwin.

    Varför det är säkert

    Vi har nämnt många gånger hur SSH är ett bra sätt att säkert ansluta och tunneldata från en punkt till en annan. Låt oss ta en kort titt på hur sakerna fungerar så att du får en bättre uppfattning om varför saker kan bli konstiga ibland.

    När vi bestämmer oss för att initiera en anslutning till en annan dator använder vi ofta protokoll som är lätta att arbeta med. Telnet och FTP kommer båda att komma ihåg. Vi skickar ut information till en fjärrserver och då får vi bekräftelse om vår anslutning. För att upprätta någon typ av säkerhet, använder dessa protokoll ofta användarnamn och lösenordskombinationer. Det betyder att de är helt säkra, eller hur? Fel!

    Om vi ​​tänker på vår kopplingsprocess som mail, är det inte att använda FTP och Telnet och liknande som att använda vanliga brevkuvert. Det är mer som att använda vykort. Om någon händer att gå i mitten, kan de se all information, inklusive adresserna till båda korrespondenterna och användarnamnet och lösenordet som skickats ut. De kan sedan ändra budskapet, hålla informationen samma och efterlikna en korrespondent eller den andra. Detta är känt som en "man-i-mitten" -attack, och det komprometterar inte bara ditt konto, utan det ifrågasätter varje meddelande som skickats och filen mottagen. Du kan inte vara säker på om du pratar med avsändaren eller inte, och även om du är kan du inte vara säker på att ingen tittar på allt däremellan.

    Låt oss nu titta på SSL-kryptering, det slag som gör HTTP säkrare. Här har vi ett postkontor som hanterar korrespondensen, som kontrollerar för att se om din mottagare är som han eller hon hävdar är och har lagar som skyddar ditt brev från att ses på. Det är säkrare totalt och den centrala myndigheten - Verisign är en, för vårt HTTPS-exempel - ser till att den person du skickar mail till checkar ut. De gör det genom att inte tillåta vykort (okrypterade referenser); I stället förordnar de riktiga kuvert.

    Slutligen, låt oss titta på SSH. Här är installationen lite annorlunda. Vi har inte en central autentiserare här, men sakerna är fortfarande säkra. Det beror på att du skickar brev till någon vars adress du redan vet - säga, genom att chatta med dem på telefon - och du använder några riktigt fina matte för att underteckna ditt kuvert. Du överlämnar det till din bror, flickvän, pappa eller dotter för att ta den till adressen, och bara om mottagarens fina matte matchar antar du att adressen är vad den ska vara. Sedan får du ett brev tillbaka, även skyddat från nyfikna ögon av denna fantastiska matte. Slutligen skickar du dina uppgifter i ett annat hemligt algoritmiskt förtrollat ​​kuvert till destinationen. Om matematiken inte matchar kan vi anta att den ursprungliga mottagaren flyttat och vi måste bekräfta adressen igen.

    Med förklaringen så länge som det är, tror vi att vi skär det där. Om du har mer insikt kan du naturligtvis chatta i kommentarerna. För närvarande, men låt oss se på den mest relevanta funktionen hos SSH, värdverifiering.

    Värdtangenter

    Verktygsautentisering är i huvudsak den del där någon du litar på tar kuvertet (förseglad med magisk matematik) och bekräftar adressen till din mottagare. Det är en ganska detaljerad beskrivning av adressen, och den är baserad på en komplicerad matte som vi bara kommer att hoppa över. Det finns några viktiga saker att ta bort från det här:

    1. Eftersom det inte finns någon central myndighet ligger den verkliga säkerheten i värdnyckeln, de offentliga nycklarna och de privata nycklarna. (Dessa senare två nycklar är konfigurerade när du får tillgång till systemet.)
    2. Vanligtvis, när du ansluter till en annan dator via SSH, lagras värdnätet. Detta gör framtida åtgärder snabbare (eller mindre verbose).
    3. Om värdnyckeln ändras kommer du med största sannolikhet att vara varnad och du bör vara försiktig!

    Eftersom värdnyckeln används före autentisering för att fastställa SSH-serverns identitet, bör du vara säker på att kontrollera nyckeln innan du ansluter. Du kommer att se en bekräftelsesdialog som nedan.

    Du borde inte oroa dig! Ofta när säkerhet är ett problem kommer det att finnas en särskild plats att värdnoden (ECDSA fingeravtryck ovan) kan bekräftas. I helt online-satsningar kommer det ofta att vara på en säker inloggningsplats. Du kan behöva (eller välja att!) Ringa din IT-avdelning för att bekräfta den här nyckeln via telefonen. Jag har till och med hört talas om några platser där nyckeln finns på ditt arbetsmärke eller på den speciella "Nödnummer" -listan. Och om du har fysisk tillgång till målmaskinen kan du också kontrollera själv!

    Kontrollera systemets värdnyckel

    Det finns 4 typer av krypteringsalgoritmer som används för att skapa nycklar, men standard för OpenSSH från och med i år är ECDSA (med några bra skäl). Vi fokuserar på den där idag. Här är kommandot du kan köra på SSH-servern du har tillgång till:

    ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

    Din produktion ska returnera något så här:

    256 ca: 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub

    Det första numret är tangentens bitlängd, då är nyckeln själv och till sist har du filen den lagras i. Jämför den mellersta delen till det du ser när du uppmanas att logga in på distans. Det borde matcha, och du är helt klar. Om det inte gör det kan något annat hända.

    Du kan se alla värdar som du har anslutit till via SSH genom att titta på din known_hosts-fil. Det är vanligtvis beläget på:

    ~ / .Ssh / known_hosts

    Du kan öppna det i någon textredigerare. Om du tittar, försök att vara uppmärksam på hur nycklarna lagras. De lagras med värddatorns namn (eller webbadress) och dess IP-adress.

    Ändra värdnycklar och problem

    Det finns några anledningar till att värdnycklar ändras eller de matchar inte vad som är inloggat i your known_hosts-filen.

    • Systemet installerades / återkonfigurerades.
    • Värdtangenterna ändrades manuellt på grund av säkerhetsprotokoll.
    • OpenSSH-servern uppdaterade och använder olika standarder på grund av säkerhetsproblem.
    • IP- eller DNS-leasingavtalet ändrades. Det här betyder ofta att du försöker komma åt en annan dator.
    • Systemet äventyras på något sätt så att värdnyckeln ändras.

    Mest troligt är problemet ett av de tre första, och du kan ignorera förändringen. Om IP / DNS-leasingändringen ändras, kan det hända att det finns ett problem med servern och du kan bli dirigerad till en annan maskin. Om du inte är säker på vad orsaken till förändringen är så borde du antagligen anta att den är den sista på listan.

    Hur OpenSSH hanterar okända värdar

    OpenSSH har en inställning för hur det hanterar okända värdar som återspeglas i variabeln "StrictHostKeyChecking" (utan citat).

    Beroende på din konfiguration kan SSH-anslutningar med okända värdar (vars nycklar inte redan finns i din known_hosts-fil) gå tre sätt.

    • StrictHostKeyChecking är inställd på nej; OpenSSH ansluts automatiskt till någon SSH-server, oavsett värdnätstatus. Detta är osäkert och rekommenderas inte, förutom om du lägger till en massa värdar efter en ominstallation av ditt operativsystem, varefter du kommer att ändra det igen.
    • StrictHostKeyChecking är inställd att fråga; OpenSSH visar nya värdnycklar och begär bekräftelse innan de läggs till. Det kommer att förhindra att anslutningar går till ändrade värdnycklar. Detta är standardvärdet.
    • StrictHostKeyChecking är satt till ja; Det motsatta av "nej", det här hindrar dig från att ansluta till någon värd som inte redan finns i din known_hosts-fil.

    Du kan enkelt ändra denna variabel på kommandoraden genom att använda följande paradigm:

    ssh -o 'StrictHostKeyChecking [option]' användare @ värd

    Ersätt [alternativ] med "nej", "fråga" eller "ja". Observera att det finns enkla raka citat som omger denna variabel och dess inställning. Ersätt också användar @ värd med användarnamnet och värdnamnet på servern du ansluter till. Till exempel:

    ssh -o 'StrictHostKeyChecking fråga' [email protected]

    Blockerade värdar på grund av ändrade nycklar

    Om du har en server som du försöker få åtkomst till, om din nyckel redan har ändrats, kommer den vanliga OpenSSH-konfigurationen att hindra dig från att komma åt den. Du kan ändra StrictHostKeyChecking-värdet för den värden, men det skulle inte vara helt, noggrant, paranoidt säkert, skulle det? Istället kan vi helt enkelt ta bort det förekommande värdet från vår known_hosts-fil.

    Det är definitivt en ful sak att ha på din skärm. Lyckligtvis var vår anledning till detta ett ominstallerat OS. Så, låt oss zooma in på den linje vi behöver.

    Där går vi. Se hur det citerar filen vi behöver redigera? Det ger oss ens linjenummeret! Så, låt oss öppna den filen i Nano:

    Här är vår förolämpande nyckel, i rad 1. Allt vi behöver göra är att slå Ctrl + K för att klippa hela linjen.

    Det är mycket bättre! Så, nu slår vi Ctrl + O för att skriva ut (spara) filen, sedan Ctrl + X för att avsluta.

    Nu får vi en bra prompten i stället, som vi helt enkelt kan svara med "ja".

    Skapa nya värdnycklar

    För posten är det verkligen inte för mycket av en anledning att du ändrar din värdnyckel alls, men om du någonsin hittar behovet kan du enkelt.

    Först byt till lämplig systemkatalog:

    cd / etc / ssh /

    Det är vanligtvis där de globala värdnycklarna är, men vissa distros har dem placerade någon annanstans. När du är osäker, kontrollera din dokumentation!

    Därefter tar vi bort alla gamla nycklar.

    sudo rm / etc / ssh / ssh_host_ *

    Alternativt kan du flytta dem till en säker backupkatalog. Bara en tanke!

    Då kan vi berätta för OpenSSH-servern att omkonfigurera sig själv:

    sudo dpkg-omkonfigurera openssh-server

    Du får se en snabb stund när din dator skapar sina nya nycklar. Ta-da!


    Nu när du vet hur SSH fungerar lite bättre, borde du kunna ta dig ur tuffa fläckar. Felmeddelandet "Fjärrvärdesidentifiering har ändrats" är något som slänger många användare bort, även de som är bekanta med kommandoraden.

    .