Ssh o shell sicuro è un utile protocollo crittografato per proteggere le connessioni tra il client e il server per diverse attività amministrative. Supporta vari tipi di sistemi di autenticazione. L'autenticazione pubblica basata su chiave e l'autenticazione basata su password sono utilizzate principalmente. L'autenticazione basata sulla chiave è più sicura dell'autenticazione basata su password. Le coppie di chiavi di autenticazione per SSH sono generate dallo strumento SSH-Keygen che può essere utilizzata per scopi diversi come l'autenticazione dell'host, l'automazione dell'accesso, ecc. Come questo strumento può essere utilizzato in Ubuntu è stato mostrato in questo tutorial.
Sintassi:
La sintassi di questo comando ha dato di seguito. Supporta molte opzioni per la generazione di coppie di chiavi di autenticazione che sono state descritte in seguito.
ssh-keygen [-q] [-b bit] [-c comment] [-f output_keyfile] [-m formato]
[-t DSA | ECDSA | ECDSA-SK | ED25519 | ED25519-SK | RSA]
[-N new_passphrase] [-o opzione] [-w Provider]
Diverse opzioni di ssh-keygen:
Gli scopi dell'utilizzo di diversi tipi di opzioni ssh-keygen sono spiegati di seguito.
Opzione | Scopo |
---|---|
-UN | Genera i tasti host con il percorso del file chiave predefinito, passphrase vuoto, bit predefiniti per il tipo di tasto e commento. |
-B bit | Viene utilizzato per definire il numero di bit nella chiave che verrà creata. |
-C Commento | È usato per definire il nuovo commento. |
-C | Viene utilizzato per richiedere la modifica del commento dei file chiave pubblici e privati. |
-E Imprint_hash | Viene utilizzato per definire l'algoritmo hash che verrà utilizzato per visualizzare le impronte digitali. |
-e | Viene utilizzato per leggere il file chiave privato o pubblico e stampare su StDout. |
-F Nome host | [nome host]: porta | Viene utilizzato per cercare il nome host particolare con il numero di porta opzionale nel file noto_hosts. |
-F nome file | Viene utilizzato per definire il nome file del file chiave. |
-H | È usato per hash un file noto_hosts. Sostituirà tutti i nomi host e gli indirizzi con le rappresentazioni hash all'interno del file specificato. Il contenuto originale verrà spostato in un file con il .vecchio suffisso. |
-io | Viene utilizzato per leggere un file chiave privato (o pubblico) non crittografato. |
-L | Viene utilizzato per stampare il contenuto di uno o più certificati. |
-l | Viene utilizzato per mostrare l'impronta digitale di un file di chiave pubblica specificata. |
-N new_passphrase | Viene utilizzato per fornire la nuova passphrase. |
-P passphrase | Viene utilizzato per fornire la vecchia passphrase. |
-t dsa | ECDSA | ECDSA-SK | ED25519 | ED25519-SK | RSA | Viene utilizzato per definire il tipo di chiave che verrà creata. |
Crea tasti usando SSH-Keygen:
È possibile creare coppie di tasti SSH eseguendo SSH-keygen con opzioni o senza alcuna opzione. Diversi modi per creare le coppie di tasti SSH hanno mostrato in questa parte di questo tutorial. È necessario accedere alla macchina del server in cui OpenSSH ha installato per creare le chiavi
Genera le coppie di chiavi senza alcuna opzione:
Il comando seguente creerà coppie di tasti senza utilizzare alcuna opzione.
$ ssh-keygen
Dopo aver eseguito il comando sopra, è possibile fornire il nome file in cui il tasto verrà salvato o premere il tasto Invio per salvare il nome file predefinito. Qui, il tasto ENTER è stato premuto. Successivamente, è possibile premere nuovamente il tasto Invio per impostare la password vuota o impostare la password.
Genera le coppie di chiavi con un'unica opzione:
Il comando seguente genererà le coppie di chiavi del tipo RSA menzionate nel comando con l'opzione -t.
$ ssh -keygen -t rsa
Come il comando precedente, è possibile fornire il nome file o utilizzare il nome file predefinito per la memorizzazione delle coppie di tasti e impostare la password o la password vuota per la connessione SSH.
Genera le coppie di chiavi con più opzioni:
Esegui il seguente comando per generare le coppie chiave di tipo RSA con 2000 bit e il valore del commento, “[email protected] ".
$ ssh -keygen -t rsa -b 2000 -c "Mailto: [email protected] "> [email protected] "
Come il comando precedente, è possibile fornire il nome file o utilizzare il nome file predefinito per la memorizzazione delle coppie di tasti e impostare la password o la password vuota per la connessione SSH. Se hai generato i file chiave prima di eseguire il comando sopra, ti chiederà di sovrascrivere il file chiave o no. Se digiti "Y", sovrascriverà il file precedentemente generato con le nuove chiavi.
Copia la chiave pubblica sul server:
Esegui il seguente comando dalla macchina del server per aggiungere la chiave pubblica alla macchina del server. Il comando copierà la chiave sul server e la configura per aggiungere la chiave al file autorizzato_keys per accedere al server.
$ ssh-copy-id -i ~/.SSH/ID_RSA Fahmida@fahmida-virtualbox
Verrà visualizzato il seguente output se la chiave pubblica non si è aggiunta prima nella macchina del server.
Modifica il file di configurazione del server:
È necessario abilitare alcune opzioni nel file di configurazione della macchina del server se si desidera impostare l'autenticazione basata su password e consentire l'accesso utente root del server. Il percorso del file di configurazione SSH del server è/etc/ssh/sshd_config. Apri il file in qualsiasi editor di testo. Esegui il comando seguente per modificare il file in nano editor.
$ sudo nano/etc/ssh/sshd_config
Aggiungi o modifica il file con le seguenti righe per abilitare l'autenticazione basata su password e impostare l'autorizzazione per l'accesso utente root.
Passwordautenticazione Sì
Per altirootlogin Sì
Salva e chiudi il file. Esegui il comando seguente per riavviare il servizio SSH.
$ sudo systemctl riavvio ssh
Accedi dal client SSH:
Accedi al computer client da dove si desidera connettersi con il server per verificare se la connessione SSH funziona. Apri il terminale ed esegui il comando seguente per aggiungere l'identità della macchina del server.
$ ssh-add
Esegui il seguente comando SSH per connettersi con la macchina del server dalla macchina client. L'autenticazione della password e l'accesso al root sono stati abilitati nel file di configurazione SSH del server nella parte precedente di questo tutorial. Pertanto, l'utente deve fornire la password di root valida della macchina del server per stabilire correttamente una connessione SSH.
$ ssh [email protected]
Verrà visualizzato il seguente output simile dopo aver stabilito una connessione SSH al server dal client.
Conclusione:
SSH-Keygen utilizza per generare una coppia di chiavi SSH in diversi modi sono stati spiegati in questo tutorial. Spero che l'utente di Ubuntu generi le chiavi SSH utilizzando SSH-Keygen per stabilire una connessione SSH dopo aver letto questo tutorial.