Hur byter jag SSH-nyckel för lösenordsfri autentisering mellan Linux-servrar?

Implementera SSH-nyckelbaserad autentisering på Linux


SSH (Secured Shell) är ett protokoll som skapar en kryptografiskt säker anslutning mellan SSH-klienten och fjärrservrar.

Med SSH kan du hantera och administrera fjärrservrar på ett säkert sätt. Detta kan vara till hjälp på många sätt.

  • Distribution av flera server
  • Stoppa / starta tjänsterna på distans
  • Automatisering

och all din kreativitet (förhoppningsvis) …

Som en sysadmin är detta typ av grundläggande grejer att veta.

Låt oss lära oss hur …

Jag kommer att generera en privat nyckel och en offentlig nyckel. Den privata nyckeln ska lagras på din ssh-klientmaskin och måste hållas säkra. Den offentliga nyckeln måste kopieras till fjärrservern för att logga in på den servern från SSH-klientmaskinen utan lösenord krävs.

Du lär dig följande.

  • Installera SSH (krävs inte om redan installerat)
  • Generera SSH-nycklar
  • Kopiera SSH-nyckel till en fjärrserver
  • Logga in på fjärrservern med SSH

För demonstrationsändamål har jag två servrar med IP-adresser under, ett system är en klient och det andra är en server som jag kommer att logga in via ssh från en klientmaskin.

  • Klient (användare -> geekflare): 192.168.56.102
  • Fjärrkontroll (användare -> ubuntu): 192.168.56.101

Installera SSH

Innan du följer stegen som nämns i den här artikeln, se till att openssh-servern är installerad på servrarna. Om den inte är installerad, kör kommandona nedan för att installera.

sudo apt-get install openssh-server

sudo systemctl enable ssh

sudo systemctl start ssh

Du kan köra ssh-kommando för att kontrollera om det är installerat i systemet eller inte.

[Email protected]: ~ $ ssh

användning: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:] port]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i identitet_fil] [-J [[Email protected]] host [: port]] [-L-adress]

[-l inloggningsnamn] [-m mac_spec] [-O ctl_cmd] [-o alternativ] [-p port]

[-Q query_option] [-R-adress] [-S ctl_path] [-W host: port]

[-w local_tun [: remote_tun]] destination [kommando]

Generera SSH-nycklar

Detta måste göras på en klientserver.

Kör kommandot ssh-keygen för att generera en SSH-nyckel. Tryck bara på enter när den ber om filen, lösenfras, samma lösenfras. Det genererar ett par nycklar i katalogen ~ / .ssh som standard. Id_rsa är den privata nyckeln och id_rsa.pub är den associerade offentliga nyckeln.

[Email protected]: ~ $ ssh-keygen

Generera offentliga / privata rsa nyckelpar.

Ange fil där nyckeln ska sparas (/home/geekflare/.ssh/id_rsa):

Ange lösenfras (tom utan lösenfras):

Ange samma lösenfras igen:

Din identifiering har sparats i /home/geekflare/.ssh/id_rsa.

Din offentliga nyckel har sparats i /home/geekflare/.ssh/id_rsa.pub.

Det viktigaste fingeravtrycket är:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [Email protected]

Nyckelens randomart-bild är:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| Oo. . . o |

| .. *. * |

| B. S. o. |

| O o. . . …. |

| + @ o o. E =. o |

| B + o + .o. =. |

| + … o. oo + |

+—-[SHA256]—–+

Det kommer att generera två nya filer i katalogen ~ / .ssh.

Kopiera SSH-nyckel till fjärrservern

Den privata nyckeln ska kopieras ~ / .ssh-mappen på en fjärrserver. De flesta servrar bör redan ha den här mappen om inte, du måste skapa en mapp.

Och för att göra det:

  • Logga in på fjärrservern med den användare som du vill ansluta. I mitt fall är dess ubuntu
  • Se till att den nuvarande arbetskatalogen är användarens hemkatalog och skapa en .ssh-mapp. Du kan också använda följande enskilda kommando för att skapa ett

mkdir -p ~ / .ssh

Om du redan har .ssh-mappen, ta sedan en säkerhetskopia av den.

Låt oss nu trycka på den offentliga nyckeln från en klientserver.

På klientmaskinen (192.168.56.102) kör du kommandot nedan för att kopiera den offentliga nyckeln på fjärrservern i en autoriserad_talsfil i .ssh-katalogen.

[Email protected]: ~ $ cat .ssh / id_rsa.pub | sSH [Email protected] ‘katt >> .ssh / authorized_keys’

[Email protected]lösenord:

Kör kommandot nedan för att ställa in behörigheter för filen Author_keys på fjärrservern.

[Email protected]: ~ $ ssh [Email protected] "chmod 700 .ssh; chmod 640 .ssh / Author_keys"

Bra, den här avslutningsnyckeln utbyts och tillståndet är inställt.

Logga in på fjärrserver med SSH

Låt oss testa för att se om det fungerar!

Låt oss logga in på fjärrservern (192.168.56.101) från en klientmaskin (192.168.56.102) som geekflare-användare.

Kör kommandot nedan för att testa, det kommer inte att fråga lösenord den här gången.

[Email protected]: ~ $ ssh [Email protected]

Välkommen till Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generisk i686)

* Dokumentation: https://help.ubuntu.com

* Hantering: https://landscape.canonical.com

* Support: https://ubuntu.com/judage

346 paket kan uppdateras.

11 uppdateringar är säkerhetsuppdateringar.

Senaste inloggning: Mån 17 juni 00:10:32 2019 från 192.168.56.101

Här har du…

Jag har loggat in på fjärrservern framgångsrikt. Om du kör under kommandot ger IP-detaljerna för fjärrmaskinen.

[Email protected]: ~ $ ifconfig

enp0s3 Länkkapsling: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 Mask: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 Omfång: Länk

UPP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

RX-paket: 20239 fel: 0 tappade: 0 överskridanden: 0 ram: 0

TX-paket: 5406-fel: 0 tappade: 0 överskridanden: 0 transportör: 0

kollisioner: 0 txqueuelen: 1000

RX-byte: 22678039 (22,6 MB) TX-byte: 701710 (701,7 KB)

enp0s8 Länkkapsling: Ethernet HWaddr 08: 00: 27: a9: 4a: 6b

inet addr: 192.168.56.101 Bcast: 192.168.56.255 Mask: 255.255.255.0

inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 Omfång: Länk

UPP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

RX-paket: 330 fel: 0 tappade: 0 överskridanden: 0 ram: 0

TX-paket: 197 fel: 0 tappade: 0 överskridanden: 0 transportör: 0

kollisioner: 0 txqueuelen: 1000

RX-byte: 42847 (42,8 KB) TX-byte: 32774 (32,7 KB)

lo Link encap: Local Loopback

inet addr: 127.0.0.1 Mask: 255.0.0.0

inet6 addr: :: 1/128 Omfattning: Host

UPP LOOPBACK RUNNING MTU: 65536 Metric: 1

RX-paket: 997 fel: 0 tappade: 0 överskridanden: 0 ram: 0

TX-paket: 997 fel: 0 tappade: 0 överskridanden: 0 transportör: 0

kollisioner: 0 txqueuelen: 1

RX-byte: 79654 (79,6 kB) TX-byte: 79654 (79,6 kB)

Slutsats

Att ställa in SSH-nyckelutbyte är mycket enkelt som du kan se. Jag hoppas att detta hjälper dig och intresserade av att lära dig Linux-administration och felsökning och kolla in detta Udemy-kurs.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector