GNU/Linux >> Linux Esercitazione >  >> Linux

SSH – Generazione e utilizzo di chiavi ssh

SSH è un protocollo sicuro utilizzato come mezzo principale per la connessione remota ai server Linux. Fornisce un'interfaccia basata su testo generando una shell remota. Dopo la connessione, tutti i comandi digitati nel terminale locale vengono inviati al server remoto e lì eseguiti.

Autenticazione

I client generalmente si autenticano utilizzando password o chiavi SSH. Le password sono meno sicure quindi le chiavi ssh sono sempre consigliate.

Per autenticarsi utilizzando le chiavi SSH, un utente deve disporre di una coppia di chiavi SSH sul proprio computer locale. Sul server remoto, la chiave pubblica deve essere copiata in un file all'interno della home directory dell'utente in ~/.ssh/authorized_keys . Questo file contiene un elenco di chiavi pubbliche, una per riga, autorizzate ad accedere a questo account.

Generazione di una coppia di chiavi SSH

Genera combinazione di chiavi pub/private

ssh-keygen

# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix

# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key

I comandi precedenti genereranno una coppia di chiavi RSA SSH. Se il percorso del file non è specificato, si troverà nel .ssh directory nascosta all'interno della directory home del tuo utente. I file predefiniti sono:

  • ~/.ssh/id_rsa :La chiave privata. NON CONDIVIDERE QUESTO FILE!
  • ~/.ssh/id_rsa.pub :la chiave pubblica associata. Questo può essere condiviso liberamente senza conseguenze.

Rimozione o modifica della passphrase su una chiave privata

Se hai generato una passphrase per la tua chiave privata e desideri modificarla o rimuoverla, utilizza i seguenti comandi:

ssh-keygen -p

ssh-keygen -p -f ~/.ssh/id_citizix

Inserisci la vecchia passphrase che desideri modificare. Ti verrà quindi richiesta una nuova passphrase, oppure puoi semplicemente premere invio per lasciare vuoto.

Controlla l'impronta digitale della chiave SSH

Ogni coppia di chiavi SSH condivide una singola "impronta digitale" crittografica che può essere utilizzata per identificare in modo univoco le chiavi. Per scoprire l'impronta digitale di una chiave SSH, digita:

ssh-keygen -l

ssh-keygen -l -f ~/.ssh/id_citizix

Copiare la tua chiave SSH pubblica su un server

La copia della chiave pubblica su un server remoto consentirà l'accesso senza password:

# This will prompt for a password
ssh-copy-id [email protected]_host

Dopo aver digitato la password, il contenuto della tua chiave ~/.ssh/id_rsa.pub verrà aggiunto alla fine del file ~/.ssh/authorized_keys dell'account utente. Ora puoi accedere senza password:ssh [email protected]_host

Copia della chiave SSH pubblica su un server senza SSH-Copy-ID

Se non hai l'utilità ssh-copy-id disponibile, ma hai ancora accesso SSH basato su password al server remoto, puoi copiare il contenuto della tua chiave pubblica in un modo diverso.

  1. Copia il contenuto in fondo al ~/.ssh/authorized_keys del server remoto file.

  2. È possibile emettere il contenuto della chiave e inviarlo tramite pipe al comando ssh. Aggiungi a ~/.ssh/authorized_keys file.

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Più hack

Genera chiave ssh pubblica da una chiave privata:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Esecuzione di un singolo comando su un server remoto

ssh [email protected]_host command_to_run

Accesso a un server con una porta diversa

ssh -p port_num [email protected]_host

Utilizzando un file di configurazione:

# File ~/.ssh/config
Host remote_alias
    HostName remote_host
    Port port_num

Aggiunta delle tue chiavi SSH a un agente SSH per evitare di digitare la passphrase

Se hai una passphrase sulla tua chiave SSH privata, ti verrà chiesto di inserire la passphrase ogni volta che la usi per connetterti a un host remoto.

Per evitare di doverlo ripetere ripetutamente, puoi eseguire un agente SSH. Questa piccola utility memorizza la tua chiave privata dopo che hai inserito la passphrase per la prima volta. Sarà disponibile per tutta la durata della tua sessione terminale, consentendoti di connetterti in futuro senza reinserire la passphrase.

Per avviare l'agente SSH, digita quanto segue nella sessione del terminale locale:

eval $(ssh-agent)

Ora aggiungi la tua chiave privata all'agente, in modo che possa gestire la tua chiave:

ssh-add

ssh-add -f ~/.ssh/id_citizix

Dovrai inserire la tua passphrase (se impostata). Successivamente, il tuo file di identità viene aggiunto all'agente, consentendoti di utilizzare la tua chiave per accedere senza dover reinserire nuovamente la passphrase.

Inoltro delle credenziali SSH da utilizzare su un server

Se desideri essere in grado di connetterti senza una password a un server dall'interno di un altro server, dovrai inoltrare le informazioni sulla tua chiave SSH. Ciò ti consentirà di autenticarti su un altro server tramite il server a cui sei connesso, utilizzando le credenziali sul tuo computer locale.

Devi aver avviato il tuo agente SSH e la tua chiave SSH aggiunta all'agente. Quindi connettiti al primo server con l'opzione -A per inoltrare le tue credenziali al server per questa sessione

ssh -A [email protected]_host

Linux
  1. Come utilizzare le chiavi SSH con Plesk

  2. Come generare una coppia di chiavi SSH (con esempi)

  3. Ssh:la differenza tra una chiave Openssh e una chiave di mastice?

  4. Introduzione a SSH in Linux

  5. Come configurare le chiavi SSH su Ubuntu 18.04

Come configurare le chiavi SSH su Ubuntu 20.04

Nozioni di base su Linux:come creare e installare chiavi SSH sulla shell

Gestione delle chiavi SSH con privacyIDEA

Come utilizzare una chiave SSH con utenti non root

Genera chiavi RSA con SSH usando PuTTYgen

Accedi con una chiave privata SSH su Linux e macOS