Per effettuare il login da remoto su un sistema Linux senza digitare ogni volta la password bastano i comandi ssh-keygen
e ssh-copy-id
e seguire le istruzioni descritte in questo articolo.
ssh-keygen
permette di creare le chiavi pubbliche e private, mentre ssh-copy-id
copia la chiave publica del client nella lista degli host autorizzati sul server remoto.
1° passo: creare le chiavi pubbliche e private sul client
Per prima cosa creiamo le nostre chiavi pubbliche e private sulla macchina client. Apriamo la console a riga di comando e digitiamo il comando ssh-keygen
:
mark@local-host$ [Nota: qui siete nella console del client] mark@local-host$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/mark/.ssh/id_rsa):[Premere il tasto Enter] Enter passphrase (empty for no passphrase): [Premere il tasto Enter] Enter same passphrase again: [Premere il tasto Enter] Your identification has been saved in /home/mark/.ssh/id_rsa. Your public key has been saved in /home/mark/.ssh/id_rsa.pub. The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 mark@local-host
2° passo: copiare la cave pubblica sul server remoto
A questo punto copiamo la chiave pubblica appena creata sul server remoto tramite il comando ssh-copy-id
:
mark@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
mark@remote-host's password: [Inserisci la password del server remoto seguito dal tasto Enter]
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.
3° passo: login sul server remoto
Non ci resta che effettuare il login sul server remoto senza che ci venga richiesta la password di accesso:
mark@local-host$ ssh remote-host Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 [Nota: SSH non richiederà di inserire la password.] mark@remote-host$ [Nota: adesso sei nel prompt del server remoto]