Come scambiare la chiave SSH per l’autenticazione senza password tra server Linux?

Implementare l’autenticazione basata su chiave SSH su Linux


SSH (Secured Shell) è un protocollo che crea una connessione protetta crittograficamente tra il client SSH e i server remoti.

Utilizzando SSH è possibile gestire e amministrare server remoti in modo sicuro. Questo può essere utile in molti modi.

  • Distribuzione multi-server
  • Arresta / avvia i servizi in remoto
  • Automazione

e tutta la tua creatività (si spera) …

Come amministratore di sistema, si tratta di cose di base da sapere.

Impariamo come …

Genererò una chiave privata e una chiave pubblica. La chiave privata deve essere memorizzata sul computer client ssh e deve essere protetta. La chiave pubblica deve essere copiata sul server remoto per accedere a quel server dal computer client SSH senza la password richiesta.

Imparerai quanto segue.

  • Installa SSH (non richiesto se già installato)
  • Genera chiavi SSH
  • Copia la chiave SSH su un server remoto
  • Accedi al server remoto usando SSH

A scopo dimostrativo, ho 2 server con indirizzi IP inferiori, un sistema è un client e l’altro è un server su cui accederò tramite ssh da una macchina client.

  • Cliente (utente -> geekflare): 192.168.56.102
  • Remoto (utente -> ubuntu): 192.168.56.101

Installazione di SSH

Prima di seguire i passaggi indicati in questo articolo, assicurarsi che openssh-server sia installato sui server. Se non è installato, eseguire i comandi seguenti per installare.

sudo apt-get install openssh-server

sudo systemctl abilita ssh

sudo systemctl start ssh

È possibile eseguire il comando ssh per verificare se è installato sul sistema o meno.

[Email protected]: ~ $ ssh

utilizzo: 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 identity_file] [-J [[Email protected]] host [: port]] [-L address]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o opzione] [-p port]

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

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

Genera chiavi SSH

Questo deve essere fatto su un server client.

Eseguire il comando ssh-keygen per generare una chiave SSH. Basta premere invio quando viene richiesto il file, la passphrase, la stessa passphrase. Genera una coppia di chiavi nella directory ~ / .ssh per impostazione predefinita. Id_rsa è la chiave privata e id_rsa.pub è la chiave pubblica associata.

[Email protected]: ~ $ ssh-keygen

Generazione di coppie di chiavi rsa pubbliche / private.

Inserisci il file in cui salvare la chiave (/home/geekflare/.ssh/id_rsa):

Inserisci passphrase (vuoto per nessuna passphrase):

Immettere di nuovo la stessa passphrase:

La tua identificazione è stata salvata in /home/geekflare/.ssh/id_rsa.

La tua chiave pubblica è stata salvata in /home/geekflare/.ssh/id_rsa.pub.

L’impronta digitale chiave è:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [Email protected]

L’immagine randomart della chiave è:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| Oo. . . o |

| .. *. * |

| B S . o. |

| O o. . . … |

| + @ o o. E =. o |

| B + o + .o. =. |

| + … o. oo + |

+—-[SHA256]—–+

Genererà due nuovi file nella directory ~ / .ssh.

Copia la chiave SSH sul server remoto

La chiave privata deve essere copiata nella cartella ~ / .ssh su un server remoto. La maggior parte dei server dovrebbe già avere questa cartella in caso contrario, è necessario creare una cartella.

E per farlo:

  • Accedi al server remoto con l’utente a cui desideri connetterti. Nel mio caso, è Ubuntu
  • Assicurarsi che la directory di lavoro corrente sia la home directory dell’utente e quindi creare una cartella .ssh. È inoltre possibile utilizzare il seguente comando singolo per crearne uno

mkdir -p ~ / .ssh

Se hai già una cartella .ssh, eseguine un backup.

Quindi, spingiamo la chiave pubblica da un server client.

Sul computer client (192.168.56.102), eseguire il comando riportato di seguito per copiare la chiave pubblica sul server remoto all’interno di un file authorized_keys nella directory .ssh.

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

[Email protected]la password:

Esegui il comando seguente per impostare le autorizzazioni sul file authorized_keys sul server remoto.

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

Bene, questo conclude che la chiave viene scambiata e l’autorizzazione è pronta.

Accedi al server remoto utilizzando SSH

Facciamo un test per vedere se funziona!

Accediamo al server remoto (192.168.56.101) da un computer client (192.168.56.102) come utente geekflare.

Esegui il comando seguente per testare, questa volta non verrà richiesta la password.

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

Benvenuto in Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generico i686)

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

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

* Supporto: https://ubuntu.com/advantage

346 pacchetti possono essere aggiornati.

11 aggiornamenti sono aggiornamenti di sicurezza.

Ultimo accesso: Lun 17 giu 00:10:32 2019 dal 192.168.56.101

Ecco qui…

Ho effettuato l’accesso al server remoto correttamente. L’esecuzione sotto il comando fornirà i dettagli IP del computer remoto.

[Email protected]: ~ $ ifconfig

enp0s3 Link encap: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 Maschera: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 Ambito: Collegamento

UP BROADCAST RUNNING MULTICAST MTU: 1500 Sistema metrico: 1

Pacchetti RX: 20239 errori: 0 rilasciati: 0 sovraccarichi: 0 frame: 0

Pacchetti TX: 5406 errori: 0 rilasciati: 0 sovraccarichi: 0 portante: 0

collisioni: 0 txqueuelen: 1000

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

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

inet addr: 192.168.56.101 Bcast: 192.168.56.255 Maschera: 255.255.255.0

inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 Ambito: Collegamento

UP BROADCAST RUNNING MULTICAST MTU: 1500 Sistema metrico: 1

Pacchetti RX: 330 errori: 0 rilasciati: 0 sovraccarichi: 0 frame: 0

Pacchetti TX: 197 errori: 0 rilasciati: 0 sovraccarichi: 0 portante: 0

collisioni: 0 txqueuelen: 1000

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

lo Link encap: Local Loopback

inet addr: 127.0.0.1 Maschera: 255.0.0.0

inet6 addr: :: 1/128 Ambito: host

UP LOOPBACK RUNNING MTU: 65536 Metrico: 1

Pacchetti RX: 997 errori: 0 rilasciati: 0 sovraccarichi: 0 frame: 0

Pacchetti TX: 997 errori: 0 rilasciati: 0 sovraccarichi: 0 portante: 0

collisioni: 0 txqueuelen: 1

Byte RX: 79654 (79,6 KB) Byte TX: 79654 (79,6 KB)

Conclusione

L’impostazione dello scambio di chiavi SSH è molto semplice, come puoi vedere. Spero che questo ti aiuti e sia interessato a imparare l’amministrazione di Linux e la risoluzione dei problemi, quindi dai un’occhiata a questo Corso Udemy.

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