SSH senza password

Uso spesso ssh per collegarmi sui server linux dei clienti. Per evitare di dover digitare sempre la password del server, è possibile configurare il vostro client per effettuare un collegamento senza dover digitare la password.

Creare sul vostro computer la chiave pubblica e privata

La prima cosa da fare è creare, sul client che deve collegarsi al server, le chiavi

Digitare quindi il comando ssh-keygen

    teopost@local-host$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
    Enter passphrase (empty for no passphrase): [Press enter key]
    Enter same passphrase again: [Press enter key]
    Your identification has been saved in /home/teopost/.ssh/id_rsa.
    Your public key has been saved in /home/teopost/.ssh/id_rsa.pub.
    The key fingerprint is:
    33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 teopost@local-host

Questa operazione crea nella cartella .ssh nella home del vostro computer 2 file. Una chiave privata (id_rsa) e una chiave pubblica (id_rsa.pub).

Copiare la chiave pubblica sul server

Ora dobbiamo far conoscere al server la nostra identità. Per farlo dobbiamo copiare la nostra chiave pubblica sul server. Si può fare anche a mano, ma c’è un comando che lo fa per noi chiamato ssh-copy-id.

    teopost@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
    teopost@remote-host's password:
    Now try logging into the machine, with "ssh 'remote-host'", and check in:

    .ssh/authorized_keys

    to make sure we haven't added extra keys that you weren't expecting.

In pratica questo comando non fa altro che accodare la vostra chiave pubblica (scritta nel file id_rsa.pub), nel file del server authorized_keysituato sotto la cartella .ssh.

Effettuare il login senza password

Il gioco è fatto. Proviamo a vedere se il nostro lavoro è andato a buon fine. Effettuiamo quindi da linea di comando il collegamento ssh al server.

    teopost@local-host$ ssh remote-host
    Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
    [Note: SSH did not ask for password.]

    teopost@remote-host$ [Note: You are on remote-host here]

Et voilà.

Share Comments