Ställ in SSH-anslutningar utan lösenord i bara tre steg

Hej,

Här ser du hur du ansluter till en dator på distans genom SSH bara ange lösenordet första gången, även om vi startar om båda datorerna kommer vi inte att bli ombedd om lösenordet igen.

Men låt oss först se en kort förklaring om vad det är SSH:

SSH det är ett protokoll, ett kommunikationsmedel mellan två datorer. Det gör att vi kan hantera ett team på distans. När vi kommer åt en annan dator via SSH kommer kommandot som vi anger i terminalen att köras på den andra datorn, på det här sättet hanterar / kontrollerar vi det.

Allt som överförs av SSH, det är krypterat och med en avsevärt bra säkerhet.

Nu kommer vi att se hur vi bara konfigurerar tre steg PC # 1 få tillgång till PC # 2 utan att ange lösenord:

Vi har följande situation:

PC # 1 - » Du vill ansluta till PC # 2, utan att behöva ange ett lösenord varje gång du försöker ansluta till den här andra datorn.

PC # 2 - » Du har SSH-servern installerad. Det här är den PC # 1 kommer att ansluta och kommer att göra det utan att ange ett lösenord. På den här datorn finns en användare som heter rot.

Låt oss börja…

1. En PC # 1 vi skriver följande:

  • ssh -keygen -b 4096 -t rsa

Detta genererar en offentlig nyckel. För att inte bli för förvirrad med "offentliga och privata nycklar" kommer jag att förklara det mycket enkelt.

Antag att du har två nycklar till ditt hus i fickan, en du ger till din flickvän eftersom du bor tillsammans, och med den andra är du ensam, du ger det inte till någon. Tja, den nyckeln du gav din flickvän tillåter henne att komma in i ditt hus utan att berätta för dig, utan att fråga om ditt tillstånd, eller hur? det är en offentlig nyckel, en "nyckel" som gör att en dator kan komma åt en annan utan att behöva be om ditt tillstånd (det vill säga utan att ange användarnamn + lösenord)

När de lägger ut det kommandot kommer det att visas:

2. Tryck bara [Stiga på], en sekund senare trycker vi igen [Stiga på], och en sekund senare trycker vi en gång till [Stiga på]. Jag menar, vi skulle trycka [Stiga på] totalt tre (3) gånger trycker vi bara på den ... vi skriver ingenting 🙂

När vi gör detta visas något som liknar följande:

Redo, vi har redan den offentliga nyckeln ... nu måste vi ge den till den vi vill (som exemplet, ge den till vår flickvän haha)

Vad vi vill är det PC # 1 koppla till PC # 2, redan inne PC # 1 vi gjorde allt ovan, i PC # 2 Vi har inte gjort någonting. Bra, PC # 2 har till exempel en IP-adress 10.10.0.5.

3. Vi sätter in PC # 1 nästa:

  • ssh-copy-id root@10.10.0.5

Vad detta gör är att helt enkelt ge dig den offentliga nyckeln till PC # 1 a PC # 2, det vill säga det ger till PC # 2 den offentliga nyckeln till PC # 1Medan PC # 1 han behåller sin privata nyckel, du vet; den nyckeln som inte ges till någon. Det är viktigt att inte göra misstag med användaren, det vill säga om användaren “rot"Det finns inte i PC # 2 kommer att ge oss ett fel, det är viktigt att vara tydlig i vilken användare vi kommer att använda för detta, förutom att den användare som vi konfigurerar åtkomst med utan lösenord, kommer att vara densamma som vi kommer att få tillgång till i framtiden. När detta är gjort ska det se ut så här:

I föregående steg måste de ange användarens lösenord PC # 2.

Och voila ... allt är konfigurerat ????

Det verkar också för oss i terminalen, låt oss testa om allt verkligen fungerade 100% OK. För att testa sätter vi:

  • ssh root@10.10.0.5

Om de vill komma åt en annan dator också utan att alltid ange ett lösenord (PC # 3 till exempel), vi ger det helt enkelt vår offentliga nyckel och det är det, det vill säga när vi har gjort steget #1 y #2 vi behöver inte göra det längre. Om vi ​​vill komma åt PC # 3 till exempel, som har IP 10.10.99.156 vi sätter bara:

  • ssh root@10.10.99.156

Hittills handledning.

Förklara att säkerhetsnivån när vi pratar om SSH är riktigt hög, metaforen som jag förklarade några steg med (att ge nyckeln till vår flickvän) kanske inte är den mest lämpliga haha, eftersom vår flickvän kunde ge nyckeln till någon annan. När vi pratar om SSH är säkerhetsprinciperna enkla att förklara när vi försöker komma åt vår dator (PC # 1) kontrollerar om det i PC # 2 finns en offentlig nyckel till vår dator (i det här fallet finns det, eftersom vi konfigurerar det på det sättet), om det finns en, är det enkelt, kontrollera om den offentliga nyckeln är identiskt lika med vår privata nyckel (den som vi gav det inte till någon). Om nycklarna är identiska tillåter det oss åtkomst, annars och som en säkerhetsåtgärd tillåter det oss inte att fjärråtkomst till den andra datorn.

Så nu vet du ... att ge vår flickvän husnyckeln är inte det säkraste, men att dela nycklar och få åtkomst till en annan dator via SSH är säkert ^ _ ^

Tvivel eller frågor, klagomål eller förslag låt mig veta.

Hälsningar till alla.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   elav <° Linux sade

    Jag förstår verkligen inte hur du är så paranoid om säkerhet gör ett sådant misstag. Om i steget där det står:

    Enter passphrase (empty for no passphrase)

    Vi skriver ingenting, vi går vilse om en användare lyckas komma åt vår dator och öppna en terminal, eftersom den automatiskt körs:

    ssh root@10.10.0.5

    Det kommer in utan att fråga om ett lösenord.

    1.    KZKG ^ Gaara <° Linux sade

      Om någon får tillgång till min bärbara dator, ja, de kan komma åt PC # 2 utan att behöva ange lösenordet, men som ni säger, jag är paranoid om säkerhet, tror du verkligen att det är något att få tillgång till min bärbara dator så enkelt? HAHA.

      När jag alltid står upp låser jag alltid skärmen, annars efter 30 sekunder av att det inte finns någon aktivitet på den bärbara datorns mus eller tangentbord låses den fortfarande 😉

      1.    Jesus sade

        Om någon stjäl din bärbara dator, oavsett hur mycket sessionen är blockerad, är det trivialt att få tillgång till filerna, en fråga om 5 minuter med en Linux-startbar från USB. Och när filerna är åtkomliga, eftersom den privata nyckeln är oskyddad, kan du använda den direkt, eller bättre kopiera den och komma åt någon av dina servrar bekvämt från ditt hem. Egentligen är processen så snabb att du inte ens behöver veta. På fem minuter går du på toaletten eller vad som helst, allt kan göras.

        Det säkra sättet är att sätta ett lösenord på den privata nyckeln och sedan använda ssh-agent så att det kommer ihåg lösenordet under hela sessionen (bara ssh-add). På detta sätt skulle det bara fråga om lösenordet första gången, och i praktiken skulle du ha en anslutning utan lösenord 90% av tiden, förutom att vara skyddad mot stöld eller intrång.

        1.    x11tete11x sade

          Är det trivialt att komma åt filerna? Har du någonsin hört talas om fullständig diskkryptering? (luks + kryptsetup)

          1.    Jesus sade

            Ja, naturligtvis, om du har krypterad hela disken är det en annan sak, men 90% av användarna gör det inte eftersom de inte vet hur man gör det och i många fall kompenserar det inte ens dem. Däremot är det inte alla som kan göra att spara okrypterade lösenord eller oskyddade privata nycklar på hårddisken och i allmänhet god praxis.

            Att spara oskyddade privata nycklar på en krypterad disk är som att parkera din bil och lämna dörrarna öppna, men att hyra en säkerhetsvakt med en Doberman för att skydda den. Det fungerar, ja, men det är mycket lättare och effektivare att låsa det direkt.

    2.    changoleon sade

      MMm gör inte så mycket för avsugningen, även om de kan skapa ett virtuellt gränssnitt, tilldela en IP och ansluta till den virtuella IP, så även om de tar bort nyckeln kommer de inte att kunna hitta maskinen eftersom nyckeln bara fungerar för en viss IP. Det beror också på vad de vill ha, det fungerar perfekt för mig som kamrat beskriver det, jag har en privat server i mitt hem jag behöver inte öka säkerheten eftersom den har en VPN konfigurerad.

  2.   samquejo sade

    Och kan allt detta gälla en Windows-terminal som måste ansluta till flera * NIX?
    Jag har kitt men jag kan också använda Securecrt (nu har jag det skriptat)

    1.    KZKG ^ Gaara <° Linux sade

      I Windows-terminalen (cmd) är jag övertygad om att nej, det kommer inte att vara möjligt där.
      Men om du använder Putty kan du prova det, det kan fungera.

      Hälsningar och välkommen till vår webbplats 😀

    2.    erm3nda sade

      Putty accepterar redan parametern -pw i ytterligare kommandon. (ex: -pw12345)
      I själva verket är Super Putty svalare än bara Putty. (Det är en ram för Putty)

      Så du behöver inte sätta det.

  3.   higi sade

    Tack för inlägget, mycket användbart. Det är lite tråkigt att logga in på SSH för allt.

    1.    KZKG ^ Gaara sade

      Hej och tack så mycket för ditt besök och kommentar 🙂
      Inget vän, ett nöje att veta att det var till hjälp ... om vi kan hjälpa dig på något annat sätt är vi mer än glada 😉

      Hälsningar och välkommen till webbplatsen.

      1.    adriext sade

        Jag måste ansluta till en windonws-dator från min Linux som jag gör från min terminal

  4.   Roberto sade

    Utmärkt .. det inspirerar verkligen att se den här typen av handledning, det får mig att också vilja bidra med mina förenklade upplevelser så att samhället kan dra nytta av dem. Tack verkligen från El Salvador.

  5.   Jose Gregorio sade

    Jag ansluter till en maskin med ubuntu till en som har debian men det ger mig ett fel där den inte kan verifieras och därför frågar den mig om lösenordet ... varför kommer detta att hända? Är det så att versionerna av ssh-keygen skiljer sig åt eller vad som händer?

    1.    KZKG ^ Gaara sade

      Sätt här det fel som det ger dig för att kunna hjälpa dig bättre 😉
      Du kan också försöka sätta detta i en terminal:
      sudo mv $HOME/.ssh/known_hosts /opt/

      Vad detta gör är att rengöra anslutningarna (anslutningshistoriken) SSH som du har haft.

  6.   kinon sade

    Och om jag ville använda samma offentliga nyckel för flera servrar, kan jag göra det, eller måste jag skapa en nyckel för varje server som jag vill komma åt? Jag ska prova det ändå, men på någon värdelös server för att inte förstöra något användbart.

    Tack och hälsningar.

    1.    KZKG ^ Gaara sade

      Eftersom jag har gjort det på min bärbara dator är det en annan nyckel för varje server, jag tror faktiskt att det inte är möjligt att använda samma nyckel i flera ... eftersom varje servers ID är unikt, som ett fingeravtryck 🙂

      hälsningar

      1.    kinon sade

        Hej sandens herre. Jag har läst nycklar och jag upptäckte att nyckelparet (offentligt och privat) tjänar serverklienten att skicka och ta emot utmaningar och därmed identifiera varandra, så det har ingenting att göra med lösenordet du använder för att komma åt server används den senare för att "klistra in" den offentliga nyckeln i de betrodda på servern. Så du kan använda den i så många du vill eller behöver.

        Jag vet inte om jag förklarade mig själv, men skämtet är att för att kunna använda ditt nyckelpar på andra servrar, efter att ha följt din handledning, behöver du bara göra:

        ssh-copy-id other.user@otra.ip
        skriv ditt lösenord för den här andra servern

        Och redo.
        hälsningar

  7.   Raul sade

    Hej, tack för guiden, det var den enda som hjälpte mig. Nu när jag vill göra det på ett annat par datorer får jag följande:

    $ssh-copy-id -p 4000 lm11@148.218.32.91

    Dålig port 'umask 077; test -d ~ / .ssh || mkdir ~ / .ssh; katt >> ~ / .ssh / autoriserade_knappar '

    Tack för din hjälp.

  8.   tyska sade

    Jag gjorde vad du sa till oss, men det frågar mig lösenordet hela tiden. Jag klargör den här anslutningen jag gör mellan två Linux Red Hat-servrar ... Vad kan det vara mer?

    Jag har redan tittat på / etc / ssh / sshd_config

    Jag har redan startat om båda servrarna

    PC2 = Linux Red Hat 6.4
    PC2 = Linux Red Hat 5.1

    1.    Xavier sade

      Ssh-tjänsten måste konfigureras korrekt (/ etc / ssh / sshd_config-fil på PC2) för att den ska fungera.

  9.   tyska sade

    korrektion…

    PC1 = Centos 6.4
    PC2 = Red Hat 5.1

  10.   gravas sade

    Hej kollegor, jag har behov av att skapa ett förtroendeförhållande mellan en Linux Centos 1-server och en Unix Sco5.3 men jag har problemet att när jag gör steg 5.7 för att kopiera nyckeln från Linux till Unix får jag meddelandet / usr / bin / ssh-copy-id: FEL: Inga identiteter hittades, varför kan det vara?

    tack

  11.   Namek sade

    Jag har följt handledningen steg för steg. Det ger mig inget fel, men i slutändan när jag ansluter från PC1 till PC2 blir det ständigt fråga mig om lösenordet varje gång jag ansluter.

    Tror någon vad det kan vara?

  12.   Rob sade

    Det verkar som om du efter att ha genererat nyckeln måste köra ssh-add så att autentiseringsagenten kan använda den.

  13.   Andrea Colodro sade

    När jag tar bort åtkomstnyckeln känner den inte igen något jag hackades, hjälp, det anger inget

  14.   Jordan acosta sade

    Tack så mycket, det fungerade perfekt

  15.   minimi sade

    Tack så mycket för guiden! Det är väldigt enkelt och kommer till hands när du har dina servrar där ute och inte behöver skriva in nycklar och därmed automatisera saker 😀

  16.   erm3nda sade

    Tack.

    Jag var inte medveten om användningen av ssh-copy-id och det har varit ganska automatiskt.
    Sanningen är att jag var trött på att skriva lösenordet, så vad jag gör är att spara det med en DEFAULT-parafras, som underhålls under sessionen.

    Jag har inget emot att skriva den en gång varje gång jag slår på datorn, rullen måste sätta den varje gång den kopplas bort eller sådant 😀

    SSH Ingen Jutsu!

  17.   lizzy sade

    Hallå

    bra handledning ... men om jag vill skicka information ??? hur kan jag göra det?

  18.   Diego Gonzalez sade

    Hej, ditt bidrag är väldigt intressant, men jag tvivlar på ett liknande ämne

  19.   Carlos Hernandez sade

    Hej.

    Försök med stegen ovan, men när du försöker kopiera nyckeln till server 2 (PC2) säger det mig att kommandot inte finns.

    bash: ssh-copy-id: kommandot hittades inte

    Kan jag kopiera nyckeln manuellt?

  20.   heidi sade

    Excellent!! Jag letade efter en så enkel förklaring och den fungerade perfekt

    tack!

  21.   Yarumal sade

    Utmärkt bidrag.
    Tack så mycket, det har hjälpt mig mycket.

  22.   Peter sade

    Hej, jag skulle vilja veta om det finns ett sätt att göra detta ssh-copy-id-kommando. Eftersom jag installerar Open ssh för Windows fungerar ssh för mig i DOS men det har inte det här ssh-copy-id-kommandot. Jag skulle vilja veta hur man skickar den här offentliga nyckeln till den andra Linux-servern (Linux-servern). Tack så mycket.

  23.   Peter sade

    Hej. Jag måste skapa ett förtroendeförhållande mellan en Linux-server och en Windows-maskin. Installera SSH för Windows och det fungerar för mig. Men det här kommandot ssh-copy-id är inte tillgängligt i det här verktyget.

    De känner till något annat sätt att göra det utan att använda ssh-copy-id.

    Tack så mycket för dina kommentarer.

  24.   Andrinho sade

    Men frågan om detta är att kunna ansluta utan lösenord, om vi lägger en lösenfras skulle den be oss om att passera för att ansluta och det var inte målet med detta

  25.   Andrinho sade

    Det har varit mycket användbart för min dator fp-modul, tack 🙂

  26.   Vicent sade

    Tack!

  27.   X Man sade

    Vissa oroar sig för hur irriterande det kan vara att behöva ange lösenordet (lösenfras), för det, som nämnts ovan är det «user-Agent» och att jag också har det konfigurerat med Keepass och dess Auto-Type-funktion, så jag bara Jag åberopar terminalen och med kombinationen av nycklar som de har konfigurerat redo har jag också "alias" för varje begäran och allt är väldigt enkelt.

    Bra handledning.

    Ha mycket kul !!

  28.   Philip Oyarce sade

    Mycket bra info 🙂 men jag har en fråga ...

    Jag har PC10 där jag håller informationen, informationen skickas från pc1 - pc2 - pc3, till PC10, hur kan jag få pc1, pc och pc3 att använda samma nyckel för att komma åt PC10 utan nyckel.

    Skål…

  29.   Nestor sade

    Hur kan jag lista vad som finns på machine1 i bash of machine2 utan att lägga ssh ip @ hosts till bash of machine1. Jag vet inte om jag förstår xD

  30.   Martin sade

    Tio år har gått sedan denna publikation och jag fortsätter att besöka den när jag behöver den. Liksom några andra tutorials här har de klarat tidens test. Tack och hälsningar!