GNU/Linux >> Linux Esercitazione >  >> Linux

3 passaggi per eseguire l'accesso SSH senza password utilizzando ssh-keygen e ssh-copy-id

Puoi accedere a un server Linux remoto senza inserire la password in 3 semplici passaggi usando ssky-keygen e ssh-copy -id come spiegato in questo articolo.

ssh-keygen crea le chiavi pubbliche e private. ssh-copy-id copia la chiave pubblica dell'host locale nel file authorized_keys dell'host remoto. ssh-copy-id assegna anche le autorizzazioni appropriate alla home dell'host remoto, ~/.ssh e ~/.ssh/authorized_keys.

Questo articolo spiega anche 3 piccoli fastidi nell'uso di ssh-copy-id e come usare ssh-copy-id insieme a ssh-agent.

Passaggio 1:crea chiavi pubbliche e private utilizzando ssh-key-gen su local-host

jsmith@local-host$ [Note: You are on local-host here]

jsmith@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: [Pess enter key]
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:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host

Passaggio 2:copia la chiave pubblica sull'host remoto utilizzando ssh-copy-id

jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
jsmith@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.

Nota: ssh-copy-id aggiunge le chiavi del file .ssh/authorized_key dell'host remoto.

Fase 3:accedi all'host remoto senza inserire la password

jsmith@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.]

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


I 3 semplici passaggi precedenti dovrebbero portare a termine il lavoro nella maggior parte dei casi.

Abbiamo anche discusso in precedenza in dettaglio sull'esecuzione di SSH e SCP da openSSH a openSSH senza inserire la password.

Se stai utilizzando SSH2, abbiamo discusso in precedenza sull'esecuzione di SSH e SCP senza password da SSH2 a SSH2 , da OpenSSH a SSH2 e da SSH2 a OpenSSH.

Utilizzo di ssh-copy-id insieme a ssh-add/ssh-agent

Quando non viene passato alcun valore per l'opzione -i e If ~/.ssh/identity.pub non è disponibile, ssh-copy-id visualizzerà il seguente messaggio di errore.

jsmith@local-host$ ssh-copy-id -i remote-host
/usr/bin/ssh-copy-id: ERROR: No identities found


Se hai caricato le chiavi nell'ssh-agent utilizzando ssh-add , quindi ssh-copy-id otterrà le chiavi dall'ssh-agent per copiare sull'host remoto. ovvero copia le chiavi fornite da ssh-add -L comando all'host remoto, quando non si passa l'opzione -i all'ssh-copy-id .

jsmith@local-host$ ssh-agent $SHELL

jsmith@local-host$ ssh-add -L
The agent has no identities.

jsmith@local-host$ ssh-add
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

jsmith@local-host$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa

jsmith@local-host$ ssh-copy-id -i remote-host
jsmith@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.
[Note: This has added the key displayed by ssh-add -L]

Tre piccoli fastidi di ssh-copy-id

Di seguito sono riportati alcuni piccoli fastidi di ssh-copy-id.

  1. Chiave pubblica predefinita: ssh-copy-id usa ~/.ssh/identity.pub come file di chiave pubblica predefinito (cioè quando nessun valore viene passato a option -i ). Invece, vorrei che usasse id_dsa.pub, o id_rsa.pub o identity.pub come chiavi predefinite. cioè se qualcuno di loro esiste, dovrebbe copiarlo sull'host remoto. Se ne esistono due o tre, dovrebbe copiare identity.pub come predefinito.
  2. L'agente non ha identità: Quando l'agente ssh è in esecuzione e ssh-add -L restituisce "L'agente non ha identità" (cioè nessuna chiave viene aggiunta all'agente ssh), ssh-copy-id copierà comunque il messaggio "L'agente non ha identità" nella voce authorized_keys dell'host remoto.
  3. Voce duplicata in authorized_keys: Vorrei che ssh-copy-id convalidi la voce duplicata sulle chiavi_autorizzate dell'host remoto. Se esegui ssh-copy-id più volte sull'host locale, continuerà ad aggiungere la stessa chiave al file authorized_keys dell'host remoto senza verificare la presenza di duplicati. Anche con voci duplicate, tutto funziona come previsto. Ma vorrei che il mio file authorized_keys fosse libero da disordine.


Se ti piace questo articolo, aggiungilo ai segnalibri su Delicious e Inciampalo .


Linux
  1. Come reimpostare la password dell'amministratore di Plesk utilizzando SSH in Linux Server?

  2. Come eseguire SSH e SCP senza password da SSH2 a OpenSSH

  3. Come configurare Rsync con SSH su UNIX / Linux (rsync senza password)

  4. TigerVNC + SSH senza password VNC?

  5. Come eseguire in remoto il comando ssh un comando sudo senza password

Come configurare l'accesso SSH senza password utilizzando ssh-keygen?

Come eseguire un backup Linux remoto utilizzando SSH

Accesso SSH senza password in 3 semplici passaggi

Esegui SSH e SCP senza inserire la password su openSSH

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

Come costringo un utente a cambiare una password al primo accesso utilizzando ssh?