requisiti
Il server SSH non è installato per impostazione predefinita su Ubuntu. È necessario installare il pacchetto OpenSSH che funzionerà come server SSH prima di iniziare questo tutorial. Eseguire il comando seguente per installare il server OpenSSH se non è già installato sul sistema.
$ sudo apt install openssh-serverGenera una chiave SSH
Genera le coppie di chiavi SSH per eseguire i comandi sul server remoto. Eseguire il comando seguente per creare la chiave pubblica e la chiave privata. La chiave privata è archiviata sul server remoto e le chiavi pubbliche sono archiviate in modo sicuro nel client.
$ ssh-keygen -t rsaDopo aver eseguito il comando precedente, ti verrà chiesto il nome del file in cui verrà salvata la chiave. Premi Invio key per mantenere il nome file della chiave pubblica predefinito, che è id_rsa.pub . Successivamente ti verrà richiesta la password per accedere. Premi di nuovo Invio premere due volte se si desidera mantenere la password vuota. Il seguente output simile viene mostrato dopo aver generato le chiavi.
Crea il file “authorized_keys”
Il file id_rsa.pub contiene la chiave pubblica della connessione SSH, che è archiviata nella cartella ~ / .ssh / dell'host remoto. La macchina client necessita anche della chiave pubblica per connettersi all'host remoto, che verrà copiata nella parte successiva del tutorial. È necessario creare il file authorized_keys nella cartella ~ / .ssh dell'host remoto che contiene la chiave pubblica. Esegui il comando seguente per spostare il file id_rsa.pub nel file ~ / .ssh /authorized_keys.
$ mv ~ / .ssh / id_rsa.pub ~ / .ssh / chiavi_autorizzateNon riceverai un errore se il file è stato spostato correttamente, come nella figura seguente.
Cambia il file di configurazione
È necessario impostare alcuni parametri di configurazione sul computer server per effettuare la connessione SSH senza password. Esegui il comando seguente per aprire il file sshd_config con l'editor nano per impostare i valori dei parametri richiesti.
$ sudo nano / etc / ssh / sshd_configImpostare il valore di PasswordAuthentication su no per disabilitare l'opzione della password di testo per la connessione SSH.
N. autenticazione password
Salva e chiudi il file. Esegui il comando seguente per riavviare il servizio SSH.
$ sudo systemctl riavvia sshEsegui il comando seguente per impostare i bit di autorizzazione sul file authorized_keys per impedire l'accesso non autorizzato a questo file.
$ chmod 600 ~ / .ssh / chiavi_autorizzateCopia la chiave pubblica sul computer client
Ora accedi alla macchina client da cui stai eseguendo il comando ssh per stabilire una connessione SSH con l'host remoto. Qui sono stati utilizzati due account utente di Ubuntu per controllare la connessione SSH nel server locale. In questo tutorial, un account utente è stato utilizzato come client e un altro account utente come server.
Esegui il comando seguente per creare una cartella denominata ~ / .ssh sul computer client se non esiste.
$ mkdir ~ / .sshEseguire il comando seguente per copiare la chiave pubblica dall'host remoto nella cartella ~ / .ssh del client.
$ scp [protetto tramite email]:/home/fahmida/.ssh/id_rsa ~ / .ssh /È necessario fornire la password del nome utente dell'host remoto per copiare la chiave pubblica sul computer client. Otterrai il seguente output se il file è stato copiato correttamente. Il computer client è ora pronto per stabilire la connessione con il computer server tramite il servizio SSH.
Accedi al computer server utilizzando SSH senza password
Ora la chiave pubblica è presente sia sui computer client che su quelli server. Quando il computer client invia la richiesta di connessione al computer server con il comando ssh, il server confronta la chiave pubblica del client con la chiave pubblica del server. Se vengono trovate le corrispondenze, la connessione viene effettuata dal client al server. È possibile connettersi al server o all'host remoto utilizzando il nome host o l'indirizzo IP. Il server locale ha utilizzato questo tutorial per mostrare l'uso della chiave_autorizzata per stabilire la connessione SSH dal computer client al computer server. Un account è stato utilizzato come macchina server su cui è installato il server OpenSSH e un altro account è stato utilizzato qui come macchina client. Eseguire il comando seguente sulla macchina client per connettersi alla macchina server.
$ ssh [email protetta]Il seguente output apparirà dopo aver eseguito il comando precedente. L'output mostra che il nome utente della macchina client è "yesmin". Il nome utente del computer server è "fahmida". La connessione SSH è stata stabilita correttamente perché il nome utente è cambiato da "yesmin" a "fahmida". È ora possibile accedere al contenuto del computer server senza problemi. Ora, quando l'utente esegue un comando, l'output viene generato in base al computer server.
diploma
L'uso delle chiavi_autorizzate per stabilire la connessione SSH è stato spiegato in questo tutorial basato su localhost. È possibile eseguire la stessa procedura per effettuare la connessione SSH per l'host remoto. Puoi anche utilizzare il comando ssh-copy-id per la connessione SSH al server mostrato in un altro tutorial.