Hoe kan ek SSH-sleutel ruil vir wagwoordlose verifikasie tussen Linux-bedieners?

Implementeer SSH-sleutelgebaseerde verifikasie op Linux


SSH (Secured Shell) is ‘n protokol wat ‘n kriptografies beveiligde verbinding tussen die SSH-kliënt en eksterne bedieners skep.

Met behulp van SSH kan u eksterne bedieners veilig bestuur. Dit kan op baie maniere nuttig wees.

  • Implementering van ‘n multi-bediener
  • Stop / begin dienste op afstand
  • Automation

en al jou kreatiwiteit (hopelik) …

As ‘n sysadmin is dit ‘n soort basiese dinge om te weet.

Kom ons leer hoe …

Ek sal ‘n private sleutel en ‘n openbare sleutel genereer. Die privaat sleutel moet op u ssh-kliëntmasjien geberg word en moet beveilig bly. Die publieke sleutel moet na die eksterne bediener gekopieër word om op die bediener vanaf die SSH-kliëntmasjien aan te meld sonder dat ‘n wagwoord benodig word.

U sal die volgende leer.

  • Installeer SSH (nie nodig as dit reeds geïnstalleer is nie)
  • Genereer SSH-sleutels
  • Kopieer SSH-sleutel na ‘n afstandbediener
  • Meld aan met die eksterne bediener met SSH

Vir demonstrasie het ek 2 bedieners met ‘n IP-adres hieronder, die een stelsel is ‘n kliënt en die ander een is ‘n bediener waarop ek via ssh van ‘n kliëntmasjien sal aanmeld.

  • Kliënt (gebruiker -> geekvlam): 192.168.56.102
  • Afstand (gebruiker -> ubuntu): 192.168.56.101

Installeer SSH

Voordat u die stappe in hierdie artikel volg, moet u seker maak dat opensh-bediener op die bedieners geïnstalleer is. As dit nie geïnstalleer is nie, voer die opdragte hieronder uit om te installeer.

sudo apt-get installeer openssh-server

sudo systemctl stel ssh in staat

sudo systemctl begin ssh

U kan ssh-opdrag uitvoer om te kyk of dit op die stelsel geïnstalleer is of nie.

[Email protected]: ~ $ ssh

gebruik: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

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

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

[-i identiteitsbestand] [-J [[Email protected]] host [: port]] [-L adres]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o opsie] [-p poort]

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

[-w local_tun [: remote_tun]] bestemming [command]

Genereer SSH-sleutels

Dit moet op ‘n kliëntbediener gedoen word.

Voer die ssh-keygen-opdrag uit om ‘n SSH-sleutel te genereer. Druk net enter wanneer daar gevra word vir die lêer, wagwoordfrase, dieselfde wagwoordfrase. Dit genereer standaard ‘n paar sleutels in die ~ / .ssh-gids. Id_rsa is die private sleutel en id_rsa.pub is die geassosieerde publieke sleutel.

[Email protected]: ~ $ ssh-keygen

Genereer openbare / private rsa-sleutelpaar.

Voer die lêer in waarin u die sleutel moet stoor (/home/geekflare/.ssh/id_rsa):

Voer wagfrase in (leeg vir geen wagwoordfrase):

Voer dieselfde wagwoordfrase weer in:

U identifikasie is gestoor in /home/geekflare/.ssh/id_rsa.

U openbare sleutel is in /home/geekflare/.ssh/id_rsa.pub gestoor.

Die sleutelvingerafdruk is:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [Email protected]

Die ewekansige prent van die sleutel is:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| Oo. . . o |

| .. *. * |

| B. S. o. |

| O o. . . …. |

| + @ o o. E =. o |

| B + o + .o. =. |

| + … o. oo + |

+—-[SHA256]—–+

Dit sal twee nuwe lêers in die ~ / .ssh-gids genereer.

Kopieer SSH-sleutel na die afstandbediener

Die privaat sleutel moet gekopieër word ~ ​​/ .ssh-lêergids op ‘n afstandbediener. Die meeste van die bedieners moet alreeds hierdie gids hê, indien nie, moet u ‘n gids skep.

En om dit te doen:

  • Meld by die eksterne bediener aan met die gebruiker wat u wil verbind. In my geval is dit Ubuntu
  • Maak seker dat die huidige werkgids die tuisgids van die gebruiker is en skep dan ‘n .ssh-lêergids. U kan ook die volgende enkele opdrag gebruik om een ​​te skep

mkdir -p ~ / .ssh

As u reeds ‘n .ssh-gids het, neem dan ‘n rugsteun daarvan.

Laat ons nou die publieke sleutel vanaf ‘n kliëntbediener druk.

Op die kliëntmasjien (192.168.56.102), voer die opdrag hieronder uit om die publieke sleutel op die afstandbediener binne ‘n gemagtig_keys-lêer in die .ssh-gids te kopieer..

[Email protected]: ~ $ kat .ssh / id_rsa.pub | ssh [Email protected] ‘kat >> .ssh / authorized_keys ‘

[Email protected]se wagwoord:

Voer die onderstaande opdrag uit om toestemmings in te stel vir die Author_keys-lêer op die eksterne bediener.

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

Geweldig, hierdie beslissende sleutel word omgeruil en toestemming is ingestel.

Teken in op ‘n afstandbediener met SSH

Kom ons kyk of dit werk!

Laat ons aanmeld by die afstandbediener (192.168.56.101) vanaf ‘n klientmasjien (192.168.56.102) as geekflare-gebruiker.

Voer die opdrag hieronder uit om te toets, dit sal nie hierdie keer wagwoord vra nie.

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

Welkom by Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generiese i686)

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

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

* Ondersteuning: https://ubuntu.com/adeel

346 pakkette kan opgedateer word.

11 opdaterings is veiligheidsopdaterings.

Laaste aanmelding: Ma 17 Junie 00:10:32 2019 vanaf 192.168.56.101

Hier gaan jy…

Ek het suksesvol by die eksterne bediener aangemeld. As u onder die opdrag loop, sal die IP-besonderhede van die afstandmasjien gegee word.

[Email protected]: ~ $ ifconfig

enp0s3 Skakelbeperking: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 Masker: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 Omvang: skakel

UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

RX-pakkies: 20239 foute: 0 gedaal: 0 oorskry: 0 raam: 0

TX-pakkies: 5406 foute: 0 gedaal: 0 oorskry: 0 draer: 0

botsings: 0 txqueuelen: 1000

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

enp0s8 Skakelkapsel: Ethernet HWaddr 08: 00: 27: a9: 4a: 6b

inet addr: 192.168.56.101 Bcast: 192.168.56.255 Masker: 255.255.255.0

inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 Omvang: skakel

UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

RX-pakkies: 330 foute: 0 gedaal: 0 oorskry: 0 raam: 0

TX-pakkies: 197 foute: 0 gedaal: 0 oorskry: 0 draer: 0

botsings: 0 txqueuelen: 1000

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

lo Skakelkapsel: Plaaslike loopback

inet addr: 127.0.0.1 Masker: 255.0.0.0

inet6 addr: :: 1/128 Omvang: Gasheer

UP LOOPBACK Lopende MTU: 65536 Metrieke: 1

RX-pakkies: 997 foute: 0 gedaal: 0 oorskry: 0 raam: 0

TX-pakkies: 997 foute: 0 gedaal: 0 oorskry: 0 draer: 0

botsings: 0 txqueuelen: 1

RX-grepe: 79654 (79,6 KB) TX-grepe: 79654 (79,6 KB)

Afsluiting

Soos u kan sien, is dit baie eenvoudig om die SSH-sleutelruil op te stel. Ek hoop dat dit u help en belangstel om Linux-administrasie en probleemoplossing te leer, en kyk daarna Udemy-kursus.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map