GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire SSH e SCP senza password da SSH2 a OpenSSH

Nei nostri articoli precedenti, abbiamo discusso di come impostare l'autenticazione basata su chiave ssh per eseguire ssh e scp senza password sotto il seguenti tre scenari:

  1. Da OpenSSH a OpenSSH
  2. Apri da SSH a SSH2
  3. da
  4. SSH2 a SSH2

In questo articolo spiegherò come eseguire ssh e scp da SSH2 (host locale) a OpenSSH (host remoto) senza password.

1. Identifica la versione SSH dell'host locale e dell'host remoto

In questo esempio, l'host locale esegue SSH2 e l'host remoto esegue OpenSSH.

[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

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

2. Genera una coppia di chiavi di autenticazione SSH2 sull'host locale utilizzando ssh-keygen2

Su SSH2, ssh-keygen sarà un collegamento software a ssh-keygen2 come mostrato di seguito.

[local-host]$ ls -l /usr/local/bin/ssh-keygen
lrwxrwxrwx  1 root root 11 Jul 31  2006 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
7 o.oOo..oOo.o
Key generated.
2048-bit dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700
Passphrase : [Enter the password here]
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_a
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_a.pub

La chiave pubblica e la chiave privata sono archiviate nella cartella .ssh2 nella directory home. In questo esempio, è in /home/jsmith/.ssh2.

Non condividere la chiave privata con nessuno.

Per impostazione predefinita ssh-keygen2 genera la coppia di chiavi DSA (Digital Signature Algorithm). Puoi anche generare una coppia di chiavi RSA come mostrato di seguito.

[local-host]$ ssh-keygen -t rsa

3. Copia la chiave pubblica SSH2 dall'host locale all'host remoto che esegue OpenSSH

Copia il file host locale:/home/jsmith/.ssh2/id_dsa_2048_a.pub in host remoto:/home/jsmith/.ssh/id_dsa_1024_a.pub. Eseguire un vi /home/jsmith/.ssh/id_dsa_1024_b.pub sull'host remoto e copiare il contenuto della chiave pubblica dall'host locale.

[remote-host]$ vi /home/jsmith/.ssh/id_dsa_1024_a.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host Sun Oct 19 2008 14:49:42 -070\0"
7ZTVd7H63VyVqBIqfmEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFDG0VQESj
5iGSvMtmBBj8wQxGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpghC97mIx
tIxJA7ZTVd7H63VIqmzlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8COWQs
t6jsP6RG/WrpHi5iGSvMtmBBj8wQGHddexkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnfLL7T
RTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcdXFY
2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQci
dko1pKuV1W9rOK3y19A2J2N6rSdWYb7Zyzw8Gr7kTMWX1TP5WhRGCUhNRYnjI+4wgZIZdC
lfGdp8MGI3HBg9CAr702BOzRTMnW0aqsGjrbhcwhWaDgRymhBh++nGAhHxeWn4ApJ8F6kT
8HaAm3dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGi
PQTrt9NAzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA==
---- END SSH2 PUBLIC KEY ----

4. Sull'host locale, crea il file ~/.ssh2/identification

Crea il seguente file sull'host locale.

$ vim ~/.ssh2/identification
IdKey id_dsa_2048_a

5. Sull'host remoto, converti la chiave pubblica SSH2 nella chiave pubblica OpenSSH

Questo dovrebbe essere eseguito sull'host remoto che esegue OpenSSH. Solo OpenSSH può convertire le chiavi avanti e indietro tra il formato OpenSSH e SSH2.

[remote-host]$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > \
~/.ssh/id_dsa_1024_a_openssh.pub

Copia la chiave pubblica OpenSSH convertita dal file ~/.ssh/id_dsa_1024_a_openssh.pub nel file authorized_keys come mostrato di seguito.

[remote-host]$ vi ~/.ssh/authorized_keys
ssh-dss 5iGSvMtmBBj8wQdegAEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFD
G0VQESjq+YlVTWcXxStz0xGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpgh
C97s143S8zBcTAGtdegte3IqmlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8
COWQst6jsP6RG/WrpHiI4QVDM6tZVZ4CnGjm1QPkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnf
LL7TRTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcd
XFY2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQ
dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGiPQTrt9N
AzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA==

6. Imposta l'autorizzazione appropriata sull'host remoto nella directory .ssh

Sull'host remoto che esegue openSSH, assicurati di configurare la seguente autorizzazione. Senza questo, avrai tutti i tipi di strani problemi con ssh.

$ chmod 755 ~
$ chmod 755 ~/.ssh
$ chmod 644 ~/.ssh/authorized_keys

7. Accedi dall'host locale all'host remoto utilizzando l'autenticazione con chiave SSH

Esegui ssh da host locale (SSH2) a host remoto (OpenSSH) come mostrato di seguito per verificare se l'autenticazione basata su chiave funziona correttamente.

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

[local-host]$ ssh -l jsmith remote-host
Host key not found from database.
Key fingerprint:
bitaz-navun-gogus-mptop-ljilk-qwlem-ftrtm-llmak-topok-zuiof-bnmix
You can get a public key's fingerprint by running
% ssh-keygen -F publickey.pub on the keyfile.
Are you sure you want to continue connecting (yes/no)? yes
Host key saved to /home/jsmith/.ssh2/hostkeys/key_22_remote-host.pub
host key for remote-host, accepted by jsmith Sun Oct 19 2008 15:06:42 -0700

Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_a" with comment "2048-bit
dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700":[Enter password]
Last login: Sun Oct 19 14:01:48 2008 from 192.168.1.10

[remote-host]$ [You are on remote-host here]


Nota :se viene visualizzato il seguente errore durante l'esecuzione di ssh o scp da host locale a host remoto, fare riferimento a Come risolvere il problema relativo alla negoziazione dell'algoritmo non riuscito su SSH per risolvere questo problema.

[local-host]$ ssh -l jsmith remote-host
warning: Authentication failed.
Disconnected; key exchange or algorithm negotiation failed
(Algorithm negotiation failed.)


Ci sono 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. Puoi saltare i passaggi successivi per questo metodo.
  2. Utilizza 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é ne hai eliminata una 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.

8. Avvia l'agente SSH sull'host locale

L'agente SSH verrà eseguito in background per conservare le chiavi private ed eseguire ssh e scp senza dover inserire più volte la passphrase.

[local-host]$ ssh-agent $SHELL

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

[local-host]$ ssh-add

Adding identity: /home/jsmith/.ssh2/id_dsa_2048_a.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_a (2048-bit dsa,
jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700).
Enter passphrase:[Enter your passphrase here]

10. Esegui SSH o SCP dall'host locale alla casa remota senza inserire la password

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

[local-host]$ ssh -l jsmith remote-host
Last login: Sun Oct 19 14:20:48 2008 from 192.168.1.10

[remote-host]$ [You are on remote-host here]


Se ti è piaciuto questo articolo, condividilo su delicious and Stumble it .


Linux
  1. Come configurare l'accesso SSH senza password

  2. Come convertire il file PPK in chiavi OpenSSH e accedere utilizzando SSH in Linux?

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

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

  5. Come eseguire SCP senza interruzione del prompt della password in Linux

Come configurare la chiave pubblica e privata SSH in Linux

Come generare e utilizzare una chiave SSH utilizzando PuTTY

Come generare e utilizzare la chiave SSH nel sistema Linux?

Come aggiungere la chiave SSH al codice VS e connettersi a un host

Come copiare in remoto file su SSH senza inserire una password

Esegui SSH e SCP senza inserire la password su openSSH