GNU/Linux >> Linux Esercitazione >  >> Linux

Esegui SSH e SCP senza inserire la password su openSSH

In questo articolo spiegherò come eseguire ssh e scp senza inserire la password utilizzando l'autenticazione con chiave pubblica SSH con SSH Agent su openSSH

Esistono due livelli di sicurezza nell'autenticazione basata su chiave SSH. Per poter accedere, sono necessarie sia la chiave privata che la passphrase. Anche se uno di essi è compromesso, l'attaccante non può comunque accedere al tuo account, poiché entrambi sono necessari per accedere. Questo è molto meglio della tipica autenticazione basata su password, in cui se la password viene compromessa, un utente malintenzionato può accedere al sistema.

Esistono due modi per eseguire ssh e scp senza inserire la password:

  1. Nessuna passphrase. Durante la creazione di una coppia di chiavi, lasciare vuota la passphrase. Utilizzare questa opzione per l'elaborazione batch automatizzata. per es. se stai eseguendo un lavoro cron per copiare file tra macchine questa è un'opzione adatta.
  2. Usa passphrase e agente SSH. Se stai usando ssh e scp in modo interattivo dalla riga di comando e non vuoi usare la password ogni volta che esegui ssh o scp, non consiglio l'opzione precedente (nessuna passphrase), poiché hai eliminato un livello di sicurezza nell'autenticazione basata su chiave ssh. Invece, usa la passphrase durante la creazione della coppia di chiavi e usa SSH Agent per eseguire ssh e scp senza dover inserire la password ogni volta come spiegato nei passaggi seguenti.

I seguenti 8 passaggi spiegano come eseguire SSH e SCP da un host locale a un host remoto senza inserire la password sul sistema openSSH

1. Verifica che l'host locale e l'host remoto eseguano openSSH

[local-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

[remote-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

2. Genera coppia di chiavi sull'host locale usando ssh-keygen

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

La chiave pubblica e la chiave privata sono generalmente archiviate nella cartella .ssh nella directory home. In questo esempio, è in /home/jsmith/.sshd. Non condividere la chiave privata con nessuno.

Per impostazione predefinita, ssh-keygen su openSSH genera una coppia di chiavi RSA. Puoi anche generare una coppia di chiavi DSA utilizzando:ssh-keygen -t dsa comando.

3. Installa la chiave pubblica sull'host remoto.

Copia il contenuto della chiave pubblica dall'host locale e incollalo in /home/jsmith/.ssh/authorized_keys sull'host remoto. Se /home/jsmith/.ssh/authorized_keys ha già qualche altra chiave pubblica, puoi aggiungerla alla fine. Se la directory .ssh nella tua home directory sull'host remoto non esiste, creala.

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

In parole semplici, copia local-host:/home/jsmith/.ssh/id_rsa.pub su remote-host:/home/jsmith/.ssh/authorized_keys

4. Concedi l'autorizzazione appropriata alla directory .ssh sull'host remoto.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

5. Accedi dall'host locale all'host remoto utilizzando l'autenticazione con chiave SSH per verificare se funziona correttamente.

[local-host]$ <You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. [remote-host]$ <You are on remote-host here>

6. Avvia l'agente SSH sull'host locale per eseguire ssh e scp senza dover inserire più volte la passphrase.

Verifica se l'agente SSH è già in esecuzione, in caso contrario avvialo come mostrato di seguito.

[local-host]$ ps -ef | grep ssh-agent
511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent

[local-host]$ ssh-agent $SHELL

[local-host]$ ps -ef | grep ssh-agent
511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash
511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

7. Carica la chiave privata nell'agente SSH sull'host locale.

[local-host]$ ssh-add
Enter passphrase for /home/jsmith/.ssh/id_rsa: <Enter your passphrase here>
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

Di seguito sono riportate le diverse opzioni disponibili in ssh-add:

  • ssh-add :carica un file chiave specifico.
  • ssh-add -l:elenca tutte le chiavi caricate nell'agente ssh.
  • ssh-add -d :elimina una chiave specifica dall'agente ssh
  • ssh-add -D:elimina tutte le chiavi

8. Esegui SSH o SCP a casa remota dall'host locale senza inserire la password.

[local-host]$<You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. <ssh did not ask for passphrase this time> [remote-host]$ <You are on remote-host here>

Aiutami a diffondere le notizie su The Geek Stuff.

Si prega di lasciare i vostri commenti e feedback su questo articolo. Se ti piace questo post, ti sarei davvero grato se potessi spargere la voce sul blog "The Geek Stuff" aggiungendolo a del.icio.us o Digg tramite il link qui sotto.


Linux
  1. Accesso SSH al server RHEL 7 senza password

  2. Come configurare l'accesso SSH senza password

  3. Ssh:la differenza tra una chiave Openssh e una chiave di mastice?

  4. Ssh – Hai bisogno di un Tty per eseguire Sudo se posso Sudo senza password?

  5. Come copiare in remoto i file su SSH senza inserire la password?

Come configurare la chiave pubblica e privata SSH in Linux

Installa e usa WinSCP

Come copiare in remoto file su SSH senza inserire una password

Suggerimenti per Ubuntu:come accedere senza inserire nome utente e password

Come posso eseguire un `git pull` senza reinserire la mia password SSH?

L'accesso SSH non funziona utilizzando una chiave Senza password?