GNU/Linux >> Linux Esercitazione >  >> Linux

Guida completa per la configurazione dell'autenticazione basata su chiave SSH2

Ho spiegato in precedenza come eseguire SSH e SCP senza inserire la password su openSSH. In questo articolo spiegherò come impostare l'autenticazione basata su chiave su SSH2 ed esegui SSH/SCP senza inserire la password seguendo i 10 passaggi seguenti.
1. Verificare che l'host locale e l'host remoto eseguano SSH2. Tieni presente che ssh e scp sono un collegamento simbolico rispettivamente a ssh2 e scp2 come mostrato di seguito.

[local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

[remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[remote-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu


2. Genera coppia di chiavi sull'host locale utilizzando ssh-keygen2. In genere 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 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
2 oOo.oOo.oOo.
Key generated.
2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700
Passphrase :<Enter the passphrase>
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.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 una coppia di chiavi DSA. Puoi anche generare una coppia di chiavi RSA utilizzando:ssh-keygen -t rsa comando.
3. Concedi l'autorizzazione adeguata alla directory .ssh2 come mostrato di seguito.

[local-host]$ chmod 755 ~/.ssh2/
[local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub
[local-host]$ chmod 644 ~/.ssh2/authorization

4. Identifica la chiave privata sul computer client. Sull'host locale, aggiungi la chiave privata al file di identificazione SSH2 come mostrato di seguito. Se il file di identificazione non è presente, creare un nuovo file. Se il file è presente, aggiungi il nome del file della chiave privata generato dal passaggio precedente al file di identificazione in "IdKey {nome-file-chiave-privata} ” come mostrato di seguito.

[local-host]$ cat /home/jsmith/.ssh2/identification
IdKey id_dsa_2048_a
IdKey id_dsa_2048_b

5. Copia la chiave pubblica su host remoto.

Copia il file /home/jsmith/.ssh2/id_dsa_2048_b.pub dall'host locale all'host remoto /home/jsmith/.ssh2/id_dsa_2048_b.pub. Puoi eseguire un vi /home/jsmith/.ssh2/id_dsa_2048_b.pub sull'host remoto e copiare il contenuto della chiave pubblica dall'host locale.

[remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:\
20 -0700"
BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0
S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa
HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms
q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL
IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II
vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk

3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo
rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ
YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO
Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/
Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0
ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU
woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv
+hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6
wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/
8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c=
---- END SSH2 PUBLIC KEY ----

6. Crea un file di autorizzazione sull'host remoto come mostrato di seguito. Questo file di autorizzazione dovrebbe contenere il nome della chiave pubblica che è stata copiata dall'host locale all'host remoto come indicato nel passaggio precedente. Tieni presente che il formato di questo file è "Key {public-key file-name} “.

[remote-host]$ cat /home/jsmith/.ssh2/authorization
Key id_dsa_2048_b.pub

7. Accedi dall'host locale all'host remoto utilizzando l'autenticazione della chiave SSH2 per verificare se funziona correttamente.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": <Enter your passphrase here>
Last login: Sat Jun 21 2008 23:13:00 -0700 from 192.168.1.102
No mail.
[remote-host]$ <You are on remote-host here>

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. 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é 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.

8. Avvia l'agente SSH sull'host locale per 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_b.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2008 23:10:20 -0700).
Enter passphrase: <Enter your passphrase here>

10. 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>

Si prega di lasciare i vostri commenti e feedback su questo articolo. Se ti piace questo post, ti sarei davvero grato se potessi iscriverti a The Geek Stuff.


Linux
  1. Introduzione alla virtualizzazione:una guida completa per principianti

  2. Configurazione dell'autenticazione basata su chiave SSH da openSSH a SSH2

  3. Come configurare le chiavi SSH per l'accesso ssh "senza password" in Linux

  4. Come impostare le chiavi SSH per l'accesso SSH "chiave pubblica/privata" su Linux

  5. Autorizzazioni per la chiave SSL?

Come impostare l'autenticazione a più fattori per SSH in Linux

Come impostare l'autenticazione basata su chiave Ssh per Github utilizzando il file ~/.ssh/config?

Come impostare l'autenticazione a due fattori per WHM?

Facile guida all'installazione di FileZilla per cPanel

Guida di Midnight Commander (mc):potente file manager basato su testo per Unix

Come configurare le chiavi SSH per l'accesso SSH "senza password" su CentOS/RHEL