Sett opp SSH-tilkoblinger uten passord på bare tre trinn

Hei,

Her vil du se hvordan du kobler til en PC eksternt ved SSH bare å skrive inn passordet første gang, så selv om vi starter begge datamaskinene på nytt, blir vi ikke bedt om passordet igjen.

Men la oss først se en kort forklaring om hva som er SSH:

SSH det er en protokoll, et kommunikasjonsmiddel mellom to datamaskiner. Det lar oss administrere et team eksternt. Når vi får tilgang til en annen datamaskin med SSH, vil kommandoen vi skriver inn i terminalen utføres på den andre datamaskinen, på denne måten administrerer / kontrollerer vi den.

Alt som overføres av SSH, det er kryptert og med en betydelig god sikkerhet.

Nå skal vi se hvordan vi bare konfigurerer tre trinn PC nr. 1 å få tilgang PC nr. 2 uten å oppgi passord:

Vi har følgende situasjon:

PC # 1 - » Du vil koble til PC nr. 2, uten å måtte oppgi passord hver gang du prøver å koble til denne andre PC-en.

PC # 2 - » Du har SSH-serveren installert. Dette er den ene PC nr. 1 den vil koble til, og den vil gjøre det uten å skrive inn passord. På denne PC-en er det en bruker som heter root.

La oss starte…

1. En PC nr. 1 vi skriver følgende:

  • ssh -keygen -b 4096 -t rsa

Dette vil generere en offentlig nøkkel. For ikke å bli forvirret med "offentlige og private nøkler", vil jeg forklare det veldig enkelt.

Anta at du har to nøkler til huset ditt i lommen, en du gir til kjæresten din siden du bor sammen, og med den andre blir du alene, gir du den ikke til noen. Vel, den nøkkelen du ga kjæresten din, vil tillate henne å komme inn i huset ditt uten å fortelle deg det, uten å spørre om tillatelse, ikke sant? det er en offentlig nøkkel, en "nøkkel" som lar en PC få tilgang til en annen uten å måtte be om din tillatelse (det vil si uten å oppgi brukernavn + passord)

Når de legger den kommandoen, vises det:

2. Bare trykk [Tast inn], et sekund senere trykker vi på igjen [Tast inn], og et sekund senere trykker vi en gang til [Tast inn]. Jeg mener, vi ville trykke [Tast inn] totalt tre (3) ganger trykker vi bare på den ... vi skriver ikke noe ????

Når vi gjør dette, vil noe som ligner på følgende vises:

Klar, vi har allerede den offentlige nøkkelen ... nå må vi gi den til den vi vil (som eksemplet, gi den til kjæresten vår haha)

Det vi ønsker er det PC nr. 1 koble til PC nr. 2, allerede i PC nr. 1 vi gjorde alt ovenfor, i PC nr. 2 Vi har ikke gjort noe. Flink, PC nr. 2 har en IP-adresse for eksempel 10.10.0.5.

3. Vi legger inn PC nr. 1 følgende:

  • ssh-copy-id root@10.10.0.5

Hva dette gjør er å bare gi deg den offentlige nøkkelen til PC nr. 1 a PC nr. 2, det vil si det gir til PC nr. 2 den offentlige nøkkelen til PC nr. 1Mens PC nr. 1 han oppbevarer sin private nøkkel, vet du; den nøkkelen som ikke er gitt til noen. Det er viktig å ikke gjøre feil med brukeren, det vil si hvis brukeren “root"Det eksisterer ikke i PC nr. 2, det vil gi oss en feil. Det er viktig å være tydelig i hvilken bruker vi vil bruke til dette, i tillegg til at den brukeren som vi konfigurerer tilgang uten passord med, vil være det samme som vi får tilgang til i fremtiden. Når dette er gjort, bør det se slik ut:

I forrige trinn må de legge inn brukerens passord PC nr. 2.

Og voila ... alt er konfigurert ????

Som det ser ut for oss i terminalen, la oss teste om alt virkelig fungerte 100% OK. For å teste setter vi:

  • ssh root@10.10.0.5

Hvis de vil ha tilgang til en annen datamaskin også uten alltid å skrive inn et passord (PC nr. 3 for eksempel), vi gir det bare vår offentlige nøkkel, og det er det, det vil si når vi har gjort trinnet #1 y #2 vi trenger ikke gjøre det lenger. Hvis vi vil ha tilgang PC nr. 3 for eksempel, som har etter IP 10.10.99.156 vi bare sette:

  • ssh root@10.10.99.156

Så langt opplæringen.

Forklar at sikkerhetsnivået når vi snakker om SSH er veldig høyt, metaforen som jeg forklarte noen trinn med (å gi nøkkelen til kjæresten vår), er kanskje ikke den mest passende haha, siden kjæresten vår kunne gi nøkkelen til noen andre. Når vi snakker om SSH, er sikkerhetsprinsippene enkle å forklare når vi prøver å få tilgang til datamaskinen vår (PC nr. 1) sjekker om det i PC # 2 er en offentlig nøkkel til datamaskinen vår (i dette tilfellet er det, fordi vi konfigurerer det på den måten), så hvis det er en, er det enkelt, sjekk om den offentlige nøkkelen er identisk med den private nøkkelen vår (den som vi ga det ikke til noen). Hvis nøklene er identiske, gir det oss tilgang, ellers og som et sikkerhetsmål, lar det oss ikke få ekstern tilgang til den andre datamaskinen.

Så nå vet du ... å gi kjæresten vår husnøkkelen er ikke den tryggeste tingen, men å dele nøkler og få tilgang til en annen datamaskin eksternt via SSH er trygt ^ _ ^

Tvil eller spørsmål, klager eller forslag, gi meg beskjed.

Hilsen til alle.


43 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   elav <° Linux sa

    Jeg forstår virkelig ikke hvordan du er så paranoid om sikkerhet gjør en slik feil. Hvis du er i trinnet der det står:

    Enter passphrase (empty for no passphrase)

    Vi skriver ikke noe, vi går tapt hvis en bruker klarer å få tilgang til PC-en vår og åpne en terminal, siden den automatisk kjøres:

    ssh root@10.10.0.5

    Den kommer inn uten å be om passord.

    1.    KZKG ^ Gaara <° Linux sa

      Hvis noen får tilgang til den bærbare datamaskinen min, ja, vil de kunne få tilgang til PC nr. 2 uten å måtte oppgi passordet, men som du sier, jeg er paranoid om sikkerhet, tror du virkelig at det å få tilgang til den bærbare datamaskinen min er noe så enkelt? HA HA.

      Når jeg alltid står opp, låser jeg alltid skjermen, ellers etter 30 sekunder er det ingen aktivitet på den bærbare datamaskinens mus eller tastatur, den vil fortsatt låse 😉

      1.    Jesus sa

        Hvis noen stjeler den bærbare datamaskinen din, uansett hvor mye økten er blokkert, er det trivielt å få tilgang til filene, et spørsmål om 5 minutter med en Linux-oppstartbar fra USB. Og når filene er tilgjengelige, siden den private nøkkelen er ubeskyttet, kan du bruke den direkte, eller bedre kopiere den og få tilgang til noen av serverne dine komfortabelt hjemmefra. Faktisk er prosessen så rask at du ikke engang trenger å vite. På 5 minutter går du på do eller hva som helst, alt kan gjøres.

        Den trygge måten er å sette et passord på den private nøkkelen, og deretter bruke ssh-agent slik at den husker passordet for hele økten (bare ssh-add). På denne måten vil det bare be om passordet første gang, og i praksis vil du ha en forbindelse uten passord 90% av tiden, i tillegg til å være beskyttet mot tyveri eller innbrudd.

        1.    x11tete11x sa

          Er det trivielt å få tilgang til filene? Har du noen gang hørt om full diskkryptering? (luks + cryptsetup)

          1.    Jesus sa

            Ja, selvfølgelig, hvis du har kryptert hele disken, er det en annen sak, men 90% av brukerne gjør det ikke fordi de ikke vet hvordan de skal gjøre det, og i mange tilfeller kompenserer det ikke engang dem. I motsetning til det å ikke lagre ukryptert passord eller ubeskyttede private nøkler på disk er noe alle kan gjøre, og generelt god praksis.

            Å lagre ubeskyttede private nøkler på en kryptert disk er som å parkere bilen din og la dørene være åpne, men å ansette en sikkerhetsvakt med en doberman for å beskytte deg. Det fungerer, ja, men det er mye enklere og mer effektivt å låse den direkte.

    2.    changoleon sa

      MMm gjør ikke så mye til blowjob, selv om de kan opprette et virtuelt grensesnitt, tildele en IP og koble til den virtuelle IP, så selv om de fjerner nøkkelen, vil de ikke kunne finne maskinen fordi nøkkelen bare fungerer for en viss IP. Det kommer også an på hva de vil ha, det fungerer perfekt for meg slik kameraten beskriver det, jeg har en privat server hjemme, jeg trenger ikke øke sikkerheten fordi den har en VPN konfigurert.

  2.   samquejo sa

    Og kan alt dette gjelde en Windows-terminal som må koble til flere * NIX-er?
    Jeg har kitt, men jeg kan også bruke Securecrt (nå har jeg skriptet)

    1.    KZKG ^ Gaara <° Linux sa

      I Windows-terminalen (cmd) er jeg overbevist om at nei, det vil ikke være mulig der.
      Men hvis du bruker Putty, kan du prøve det, det kan fungere.

      Hilsen og velkommen til siden vår 😀

    2.    erm3nda sa

      Putty godtar allerede parameteren -pw i flere kommandoer. (eks: -pw12345)
      Super Putty er faktisk kulere enn bare vanlig Putty. (Det er en ramme for Putty)

      Så du trenger ikke å si det.

  3.   higi sa

    Takk for innlegget, veldig nyttig. Det er litt kjedelig å logge på SSH for alt.

    1.    KZKG ^ Gaara sa

      Hei og tusen takk for besøket og kommentaren 🙂
      Ingenting venn, en glede å vite at det var nyttig ... hvis vi kan hjelpe deg på noen annen måte, er vi mer enn glade 😉

      Hilsen og velkommen til siden.

      1.    adriext sa

        Jeg må koble til en windonws-pc fra Linux som jeg gjør fra terminalen min

  4.   Roberto sa

    Utmerket .. det inspirerer virkelig å se denne typen opplæringsprogrammer, det gjør at jeg også vil bidra med mine erfaringer som allerede er forenklet, slik at samfunnet kan dra nytte av dem. Tusen takk fra El Salvador.

  5.   José Gregorio sa

    Jeg kobler til en maskin med ubuntu til en som har debian, men det gir meg en feil der den ikke kan autentiseres, og derfor ber den meg om passordet .. hvorfor vil dette skje? Kan det være at versjonene av ssh-keygen er forskjellige, eller hva som skjer?

    1.    KZKG ^ Gaara sa

      Sett her feilen det gir deg for å kunne hjelpe deg bedre 😉
      Du kan også prøve å sette dette i en terminal:
      sudo mv $HOME/.ssh/known_hosts /opt/

      Hva dette gjør er å rense tilkoblingene (tilkoblingshistorikk) SSH du har hatt.

  6.   kinon sa

    Og hvis jeg ønsket å bruke den samme offentlige nøkkelen for flere servere, kan jeg gjøre det, eller må jeg opprette en nøkkel for hver server jeg vil ha tilgang til? Jeg skal prøve det uansett, men på en ubrukelig server for ikke å ødelegge noe nyttig.

    Takk og hilsen.

    1.    KZKG ^ Gaara sa

      Ettersom jeg har laget den på den bærbare datamaskinen min, er den en annen nøkkel for hver server, faktisk tror jeg det ikke er mulig å bruke den samme nøkkelen i flere ... fordi ID-en til hver server er unik, som et fingeravtrykk 🙂

      Hilsen

      1.    kinon sa

        Hei sandens herre. Jeg har lest nøkler, og jeg fant ut at nøkkelparet (offentlig og privat) tjener serverklienten til å sende og motta utfordringer og dermed identifisere hverandre, så det har ingenting å gjøre med passordet du bruker for å få tilgang til serveren, brukes sistnevnte til å "lime inn" den offentlige nøkkelen i de pålitelige på serveren. Så du kan bruke den i så mange du vil eller trenger.

        Jeg vet ikke om jeg forklarte meg, men vitsen er at for å kunne bruke nøkkelparet ditt på andre servere, etter å ha fulgt veiledningen din, må du bare gjøre:

        ssh-copy-id other.user@otra.ip
        skriv passordet for denne andre serveren

        Og klar.
        Hilsen

  7.   Raul sa

    Hei, takk for guiden, det var den eneste som hjalp meg. Nå som jeg vil gjøre det på et annet par datamaskiner får jeg følgende:

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

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

    Takk for hjelpen.

  8.   Tysk sa

    Jeg gjorde det du fortalte oss, men det ber meg stadig om passordet. Jeg avklarer denne forbindelsen jeg lager mellom to Linux Red Hat-servere ... Hva mer kan det være?

    Jeg har allerede sett på / etc / ssh / sshd_config

    Jeg startet allerede begge serverne på nytt

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

    1.    Xavier sa

      Ssh-tjenesten må være konfigurert riktig (/ etc / ssh / sshd_config-fil på PC2) for at den skal fungere.

  9.   Tysk sa

    korreksjon…

    PC1 = Centos 6.4
    PC2 = Red Hat 5.1

  10.   gravas sa

    Hei kolleger, jeg har behov for å etablere et tillitsforhold mellom 1 Linux Centos 5.3-server og en Unix Sco5.7, men jeg har problemet at når jeg gjør trinn 3 for å kopiere nøkkelen fra Linux til Unix, får jeg meldingen / usr / bin / ssh-copy-id: FEIL: Ingen identiteter funnet, hvorfor kan det være?

    Takk

  11.   Namek sa

    Jeg har fulgt veiledningen trinn for trinn. Det gir meg ingen feil, men til slutt når jeg kobler fra PC1 til PC2, blir det stadig spurt om rotpassordet hver gang jeg kobler til.

    Er det noen som tenker hva det kan være?

  12.   Rane sa

    Det ser ut til at du etter å ha generert nøkkelen må utføre ssh-add slik at godkjenningsagenten kan bruke den.

  13.   Andrea Colodro sa

    Hvordan sletter jeg tilgangsnøkkelen?

  14.   Jordan acosta sa

    Tusen takk, det fungerte perfekt

  15.   minimum sa

    Tusen takk for guiden! Det er veldig enkelt, og det kommer godt med når du har serverne dine der ute og ikke trenger å skrive inn nøkler og dermed automatisere ting 😀

  16.   erm3nda sa

    Takk.

    Jeg var ikke klar over bruken av ssh-copy-id, og det har vært ganske automatisk.
    Sannheten er at jeg var opp til punktet med å skrive passordet, så det jeg gjør er å lagre det med en DEFAULT-omskrivning, som opprettholdes under økten.

    Jeg har ikke noe imot å skrive den en gang hver gang jeg slår på PC-en, rullen må sette den hver gang den kobles fra eller sånt.

    SSH Ingen Jutsu!

  17.   lizzy sa

    Hallo

    god opplæring ... men hvis jeg vil formidle informasjon ??? hvordan kan jeg gjøre det?

  18.   Diego Gonzalez sa

    Hei, ditt bidrag er veldig interessant, men jeg er i tvil om et lignende emne

  19.   Carlos Hernandez sa

    Hei.

    Prøv trinnene ovenfor, men når du prøver å kopiere nøkkelen til server 2 (PC2), forteller den meg at kommandoen ikke eksisterer.

    bash: ssh-copy-id: kommandoen ble ikke funnet

    Kan jeg kopiere nøkkelen manuelt?

  20.   heidi sa

    Utmerket!! Jeg lette etter en så enkel forklaring og den fungerte perfekt

    takk!

  21.   Yarumal sa

    Utmerket bidrag.
    Tusen takk det har hjulpet meg veldig.

  22.   Pedro sa

    Hei, jeg vil gjerne vite om det er en måte å gjøre denne ssh-copy-id-kommandoen på. Siden jeg installerer Open ssh for Windows, fungerer ssh for meg i DOS, men den har ikke denne kommandoen ssh-copy-id. Jeg vil gjerne vite hvordan du sender denne offentlige nøkkelen til den andre linux-serveren (linux-serveren). Takk så mye.

  23.   Pedro sa

    Hei. Jeg må etablere et tillitsforhold mellom en Linux-server og en Windows-maskin. Installer SSH for Windows, og det fungerer for meg. Men denne ssh-copy-id-kommandoen er ikke tilgjengelig i dette verktøyet.

    De vet om en annen måte å gjøre det uten å bruke ssh-copy-id.

    Tusen takk for kommentarene dine.

  24.   Andrinho sa

    Men spørsmålet om dette er å kunne koble til uten passord. Hvis vi setter en passordfrase, vil det be oss om at passet skal koble til, og det var ikke målet med dette

  25.   Andrinho sa

    Det har vært veldig nyttig for meg for datamaskinens fp-modul, takk 🙂

  26.   Vicent sa

    Takk skal du ha!!!

  27.   x-mann sa

    Noen bekymrer seg for hvor irriterende det kan være å måtte angi passordet (passordfrase), for det, som de sa ovenfor, er det «user-Agent», og at jeg også har det konfigurert med Keepass og dets Auto-Type-funksjon, så Jeg bare påkaller terminalen og med kombinasjonen av nøkler som de har konfigurert klare, har jeg også "aliaser" for hver forespørsel, og alt er veldig enkelt.

    God opplæring.

    Ha det veldig gøy !!

  28.   Philip Oyarce sa

    Veldig god info 🙂 men jeg har et spørsmål ...

    Jeg har PC10 som er der jeg oppbevarer informasjonen, informasjonen sendes fra pc1 - pc2 - pc3, til PC10, hvordan kan jeg få pc1, pc og pc3 til å bruke samme nøkkel for å få tilgang til PC10 uten nøkkel.

    Jubel…

  29.   Nestor sa

    Hvordan kan jeg liste opp hva som er på machine1 i machine2's bash uten å gå til ssh ip @ hosts til machine1's bash. Jeg vet ikke om jeg forstår xD

  30.   Martin sa

    10 år har gått siden denne publikasjonen, og jeg fortsetter å besøke den når jeg trenger den. Som noen andre veiledninger her har de stått tidstesten. Takk og hilsen!