GNU/Linux >> Tutoriels Linux >  >> Linux

Guide complet pour la configuration de l'authentification basée sur la clé SSH2

J'ai expliqué précédemment comment exécuter SSH et SCP sans entrer de mot de passe sur openSSH. Dans cet article, je vais vous expliquer comment configurer l'authentification par clé sur SSH2 et exécutez SSH/SCP sans saisir de mot de passe en suivant les 10 étapes suivantes.
1. Vérifiez que l'hôte local et l'hôte distant exécutent SSH2. Veuillez noter que ssh et scp sont un lien symbolique vers ssh2 et scp2 respectivement, comme indiqué ci-dessous.

[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. Générez une paire de clés sur l'hôte local à l'aide de ssh-keygen2. Généralement, ssh-keygen sera un lien symbolique vers ssh-keygen2, comme indiqué ci-dessous.

[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 clé publique et la clé privée sont stockées dans le dossier .ssh2 sous votre répertoire personnel. Dans cet exemple, il se trouve sous /home/jsmith/.ssh2. Vous ne devez partager la clé privée avec personne.

Par défaut, ssh-keygen2 génère une paire de clés DSA. Vous pouvez également générer une paire de clés RSA en utilisant :ssh-keygen -t rsa commande.
3. Donner l'autorisation appropriée au répertoire .ssh2 comme indiqué ci-dessous.

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

4. Identifiez la clé privée sur la machine cliente. Sur l'hôte local, ajoutez la clé privée au fichier d'identification SSH2 comme indiqué ci-dessous. Si le fichier d'identification n'est pas présent, créez un nouveau fichier. Si le fichier est présent, ajoutez le nom de fichier de clé privée généré à l'étape ci-dessus au fichier d'identification dans le champ "IdKey {nom de fichier de clé privée} ” format comme indiqué ci-dessous.

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

5. Copiez la clé publique sur l'hôte distant.

Copiez le fichier /home/jsmith/.ssh2/id_dsa_2048_b.pub de l'hôte local vers l'hôte distant /home/jsmith/.ssh2/id_dsa_2048_b.pub. Vous pouvez effectuer un vi /home/jsmith/.ssh2/id_dsa_2048_b.pub sur l'hôte distant et copier le contenu de la clé publique à partir de l'hôte local.

[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. Créer un fichier d'autorisation sur l'hôte distant comme indiqué ci-dessous. Ce fichier d'autorisation doit contenir le nom de la clé publique qui a été copiée de l'hôte local vers l'hôte distant, comme mentionné à l'étape précédente. Veuillez noter que le format de ce fichier est "Key {public-key file-name} ".

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

7. Connectez-vous de l'hôte local à l'hôte distant à l'aide de l'authentification par clé SSH2 pour vérifier si cela fonctionne correctement.

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

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.

8. Démarrez l'agent SSH sur l'hôte local pour exécuter ssh et scp sans avoir à saisir plusieurs fois la phrase secrète.

[local-host]$ ssh-agent $SHELL

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

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

S'il vous plaît laissez vos commentaires et commentaires concernant cet article. Si vous aimez cet article, j'apprécierais vraiment si vous pouviez vous abonner à The Geek Stuff.


Linux
  1. Introduction à la virtualisation :un guide complet pour les débutants

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

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

  4. Comment configurer les clés SSH pour une connexion SSH « sans mot de passe » sur CentOS/RHEL

  5. Comment configurer les clés SSH pour la connexion SSH "clé publique/privée" sous Linux

Bash For Loop Guide et exemples

Comment configurer l'authentification multifacteur pour SSH sous Linux

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

Comment configurer l'authentification à deux facteurs pour WHM ?

Guide de configuration facile de FileZilla pour cPanel

Guide de Midnight Commander (mc) :Puissant gestionnaire de fichiers texte pour Unix