Utilizzare SSH senza password: chiavi SSH

Linux, Sicurezza Add comments

openssh_logoQuando vogliamo connetterci ad un server SSH, solitamente utilizziamo un comando simile al seguente:

ssh user@remotehost.com

Una volta connessi ci viene richiesta la password di accesso e subito dopo siamo connessi. Digitare ogni volta la password puo' essere scomodo, ed in alcuni casi questo potrebbe addirittura impedirci di creare uno script di automazione per velocizzare alcuni compiti.

Ci vengono in aiuto le chiavi SSH. Generando una coppia di chiavi pubblica/privata di SSH sulla propria macchina, ed esportando la chiave pubblica sul server remoto, possiamo fare in modo di autorizzare la nostra chiave remota, facendo si che le connessioni successive avvengano senza la richiesta di alcuna password.

Supponiamo (a scopo dimostrativo) che il server remoto si trovi all'indirizzo IP 192.168.0.2 e supponiamo inoltre di avere un account chiamato user sulla macchina remota.

Per prima cosa dobbiamo generare la coppia di chiavi sulla nostra macchina locale (n.b: non utilizzo alcuna passphrase, altrimenti mi verrebbe richiesta comunque al primo login di ogni sessione):

andy80@noteboontu:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/andy80/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/andy80/.ssh/id_dsa.
Your public key has been saved in /home/andy80/.ssh/id_dsa.pub.
The key fingerprint is:
22:99:69:d2:8d:8e:a5:f1:f4:dc:0f:d8:49:52:53:cd andy80@noteboontu

A questo punto dobbiamo copiare la chiave pubblica appena generata, sul server remoto:

cd ~/.ssh/
scp id_dsa.pub user@192.168.0.2:./id_dsa.pub

Ci verrà chiesta la nostra password remota, per poter effettuare la copia del file. A questo punto dobbiamo connetterci via SSH al server remoto:

ssh user@192.168.0.2

Quando abbiamo effettuato correttamente il login, dobbiamo procedere con i seguenti comandi:

cd .ssh
touch authorized_keys2
chmod 600 authorized_keys2
cat ../id_dsa.pub >> authorized_keys2
rm ../id_dsa.pub

Il gioco è fatto! Le successive connessioni SSH che effettueremo verso il server remoto, avverranno senza la richiesta di alcuna password.

7 Responses to “Utilizzare SSH senza password: chiavi SSH”

  1. jfk Says:

    Arrivato al punto:
    cat ../id_dsa.pub >> authorized_keys

    Mi dice
    -bash: syntax error near unexpected token `&’

    Cosa sbaglio?

  2. jfk Says:

    Come non detto, bastava mettere a posto di quello schifo di output che tira fuori wordpress (suppongo sia lui) il >>

  3. Luca Says:

    penso che il copia incolla ti ha sostituito >> con &gt &gt
    cat ../id_dsa.pub >> authorized_keys2

    ciao
    Luca

  4. Andrea Grandi Says:

    Avete ragione, scusatemi. In effetti c’è questo pub in wordpress… vuole per forza formattare anche il codice che si trova dentro il tag e spesso mi dimentico di ricontrollarlo. Adesso dovrebbe essere tutto a posto, grazie per la segnalazione :)

  5. italoc Says:

    sarà ma io ho fatto esattamente come indicato ma la password continua a chiedermela..

  6. Andrea Grandi Says:

    Vi segnalo la guida dalla quale ho preso spunto: http://www.sshkeychain.org/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-4.html

    Potrei anche essermi dimenticato qualcosa… però ti assicuro che ad altri ha funzionato.

  7. allanon Says:

    Per copiare la chiave pubblica nella macchine remota si puo’ anche usare il comando

    ssh-copy-id -i .ssh/id_dsa.pub user@192.168.0.2

    e verra’ automaticamente aggiunta al file authorized_keys

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in