GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration de l'authentification basée sur la clé SSH d'openSSH à SSH2

Les articles précédents (configuration d'openSSH vers openSSH, configuration de SSH2 vers SSH2) expliquent comment configurer l'authentification par clé sur la même version de ssh pour exécuter ssh et scp sans entrer de mot de passe. Cet article explique comment configurer l'authentification basée sur la clé SSH entre différentes versions de SSH (de openSSH à SSH2) pour exécuter ssh et scp sans entrer de mot de passe.

1. Vérifiez la version SSH de l'hôte local et de l'hôte distant.

Dans cet exemple, l'hôte local s'exécute sur openSSH et l'hôte distant s'exécute sur SSH2.

[local-host]$ ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007

[remote-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
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2

2. Générer une paire de clés sur l'hôte local à l'aide de 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:
3b:2a:d2:ac:8c:71:81:7e:b7:31:21:11:b8:e8:31:ad jsmith@local-host

La clé publique et la clé privée sont généralement stockées dans le dossier .ssh sous votre répertoire personnel. Dans cet exemple, il se trouve sous /home/jsmith/.sshd. Vous ne devez partager la clé privée avec personne.

Par défaut, le ssh-keygen sur openSSH génère une paire de clés RSA. Vous pouvez également générer une paire de clés DSA en utilisant :ssh-keygen -t dsa commande.

3. Convertir la clé publique openSSH en clé publique SSH2.

Sur l'hôte local qui exécute openSSH, convertissez la clé publique openSSH en clé publique SSH2 à l'aide de ssh-keygen comme indiqué ci-dessous.

[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub

4. Installez la clé publique sur l'hôte distant qui exécute SSH2.

Créez un nouveau fichier de clé publique sur l'hôte distant et copiez-collez la clé SSH2 convertie à partir de l'hôte local.

[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub 
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host"
DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI
3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU
YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ
LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP
LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8
a7cQuMS178i9eDBEC==
---- END SSH2 PUBLIC KEY ----

Ajoutez le nom de fichier de clé publique ci-dessus au fichier d'autorisation sur l'hôte distant, comme indiqué ci-dessous.

[remote-host]$ vi ~/.ssh2/authorization 
Key local-host_ssh2_key.pub

5. Vérifiez la connexion de l'hôte local à l'hôte distant à l'aide de l'authentification par clé SSH2.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
The authenticity of host 'local-host' can't be established.
DSA key fingerprint is a5:f6:2e:e6:a9:b2:7b:0e:e7:ae:cb:6c:7b:f5:6d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'local-host' (DSA) to the list of known hosts.
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <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>

Il existe deux façons d'exécuter ssh et scp sans saisir le mot de passe :

  1. Aucune phrase secrète. Lors de la création de la paire de clés, laissez la phrase de passe vide. Utilisez cette option pour le traitement automatisé par lots. par ex. si vous exécutez une tâche cron pour copier des fichiers entre des machines, cette option est appropriée. Vous pouvez ignorer les étapes suivantes pour cette méthode.
  2. Utilisez la phrase de passe et l'agent SSH. Si vous utilisez ssh et scp de manière interactive à partir de la ligne de commande et que vous ne souhaitez pas utiliser le mot de passe à chaque fois que vous exécutez ssh ou scp, je ne recommande pas l'option précédente (pas de phrase secrète), car vous avez éliminé un niveau de sécurité dans l'authentification basée sur la clé ssh. Au lieu de cela, utilisez la phrase secrète lors de la création de la paire de clés et utilisez l'agent SSH pour exécuter ssh et scp sans avoir à saisir le mot de passe à chaque fois, comme expliqué dans les étapes ci-dessous.

6. Démarrez l'agent SSH sur l'hôte local

L'agent SSH fonctionnera en arrière-plan pour conserver les clés privées et exécuter ssh et scp sans avoir à saisir plusieurs fois la phrase secrète.

[local-host]$ ssh-agent $SHELL

7. Chargez la clé privée dans l'agent SSH sur l'hôte local.

[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)

8. Effectuez SSH ou SCP vers l'accueil distant à partir de l'hôte local sans entrer le mot de passe.

[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>

Linux
  1. Comment configurer l'authentification basée sur une clé SSH sous Linux

  2. Ssh - La différence entre une clé Openssh et une clé Putty ?

  3. Importer la clé Ssh en tant que sous-clé Gpg à utiliser pour l'authentification Ssh ?

  4. Comment effectuer SSH et SCP sans mot de passe de SSH2 à OpenSSH

  5. Comment configurer les clés SSH pour une connexion ssh "sans mot de passe" sous Linux

Comment configurer les clés SSH – Windows OS ?

Commande SSH

Comment configurer l'authentification multifacteur pour SSH sous Linux

Comment configurer la connexion SSH sans mot de passe dans AlmaLinux

Comment configurer l'authentification basée sur la clé Ssh pour Github en utilisant le fichier ~/.ssh/config ?

Effectuer SSH et SCP sans entrer de mot de passe sur openSSH