Authentification sur l'équipement réseau via SSH à l'aide de clés publiques

Trousseau de clés

Par dĂ©faut, les ingĂ©nieurs se connectent Ă  l'Ă©quipement rĂ©seau Ă  l'aide d'un nom d'utilisateur et d'un mot de passe. À l'aide de Telnet, les informations d'identification de l'utilisateur sont transmises en texte clair et via SSH, en cryptĂ©. Afin de ne pas transmettre la partie secrĂšte sur le rĂ©seau, l'authentification par clĂ© publique est utilisĂ©e. Avec cette authentification, la clĂ© publique de l'utilisateur est prĂ©-affectĂ©e Ă  l'utilisateur sur l'Ă©quipement. La clĂ© privĂ©e n'est pas transmise sur le rĂ©seau.

Ce guide vous aidera à commencer rapidement à utiliser des clés publiques pour l'authentification lors de la connexion à un équipement réseau à l'aide du protocole SSH. Le guide est applicable à la fois pour Windows et Mac OS X. J'ai essayé de le rendre aussi simple et informatif que possible. Il n'est pas surchargé, mais répond aux questions de base:





J'ai également examiné les sujets "douloureux":

  • Conversion de clĂ© entre OpenSSH <==> SecureCRT <==> PuTTY.
  • Utilisation de diffĂ©rentes paires de clĂ©s publiques pour diffĂ©rents Ă©quipements. Une clĂ© est bonne, mais ne s'applique pas en rĂ©alitĂ©. DiffĂ©rents clients ou Ă©quipements nĂ©cessitent diffĂ©rentes paires de clĂ©s publiques (certaines avec un mot de passe, d'autres sans).
  • Utilisation du MAC OS X natif (natif) pour travailler avec des clĂ©s publiques.
  • Le guide devrait Ă©galement aider Ă  utiliser Ansible avec un Ă©quipement rĂ©seau, car Ansible utilise OpenSSH avec l'authentification par clĂ© publique par dĂ©faut.

90% du matériel présenté est testé sur du matériel réel.


introduction


Outre l'authentification par mot de passe standard (mot de passe / clavier) dans le protocole SSH, il existe également une authentification par clé publique (RSA).

Pour référence
RSA (https://ru.wikipedia.org/wiki/RSA) — . (public key) (private key). : . . , , .

L'authentification à l'aide des clés RSA comprend plusieurs étapes:


Pourquoi seulement RSA? Pourquoi pas un DSA? Malheureusement, je n'ai pas trouvé la réponse à cette question (et je ne l'ai pas vraiment recherchée). Mais officiellement, seul RSA est pris en charge sur les équipements Cisco.

Guide de configuration de Secure Shell, Cisco IOS version 15E:

Guide de configuration de Secure Shell,
restrictions de Cisco IOS version 15E pour la prise en charge de Secure Shell version 2 La
génération de clés Rivest, Shamir et Adleman (RSA) est une exigence cÎté serveur SSH. Les périphériques qui agissent comme des clients SSH n'ont pas besoin de générer de clés RSA.

Tentative de saisie des données de clé DSA:

CSR-1(conf-ssh-pubkey-data)#exit
%SSH: Only ssh-rsa type is supported
CSR-1(conf-ssh-pubkey-user)#


Création d'une clé RSA publique


Une paire de clĂ©s RSA peut ĂȘtre crĂ©Ă©e Ă  l'aide de divers utilitaires: SecureCRT, PuTTYgen ou tout autre logiciel. Lors de la crĂ©ation d'une clĂ©, vous pouvez dĂ©finir une phrase secrĂšte (protection par mot de passe avec une clĂ©).


Génération de paires RSA dans SecureCRT


SecureCRT -> Outils -> Créer une clé publique ...:


Un peu de thĂ©orie → le bouton "Suivant>":


Type de certificat RSA / DSA → SĂ©lectionnez RSA → bouton "Suivant>":


Mot de passe de cryptage pour la clĂ© secrĂšte (facultatif, vous pouvez le laisser vide et ne pas crypter) + Commentaire → bouton "Suivant>":


Choisissez la longueur de clé (dans SecureCRT version 6.1.0, la longueur de clé maximale est de 2048 bits, dans la version 8.5.4 - 16 384 bits):




GĂ©nĂ©ration de clĂ© → bouton "Suivant>": Pour gĂ©nĂ©rer des nombres alĂ©atoires, vous devez dĂ©placer la souris dans la fenĂȘtre.



Enregistrement d'une paire de clĂ©s → SĂ©lection d'un emplacement de stockage → SĂ©lection d'un format pour une clĂ© enregistrĂ©e (format VanDuke Private, OpenSSH legacy, OpenSSH new) → Bouton «Terminer»:



SecureCRT demande s'il faut faire de cette clé la clé par défaut de SecureCRT:



Génération de paires RSA dans PuTTYgen


Vous pouvez télécharger PuTTYgen ici: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html .

Lancez PuTTYgen:


SĂ©lectionnez les paramĂštres (type de paire: RSA; dimension du bit clĂ©: 2048; dĂ©finissez Ă©ventuellement la phrase secrĂšte (protection par mot de passe avec un mot de passe)) → GĂ©nĂ©rez:


Pour garantir des nombres alĂ©atoires, il demande de dĂ©placer la souris dans la fenĂȘtre. Il s'agit d'une protection contre les nombres pseudo alĂ©atoires.


Enregistrer les clĂ©s RSA → bouton «Enregistrer la clĂ© privĂ©e»:


Remarque: les clĂ©s RSA stockĂ©es dans un format privĂ© dans un logiciel ne peuvent pas ĂȘtre utilisĂ©es dans les logiciels d'un autre fabricant. Autrement dit, une paire de clĂ©s RSA crĂ©Ă©es dans PuTTYgen et enregistrĂ©es au format Putty Private Key n'est pas adaptĂ©e Ă  une utilisation dans SecureCRT, et vice versa. PuTTY ne prend en charge que le format de clĂ© privĂ©e Putty. Une solution universelle pour la distribution des clĂ©s consiste Ă  convertir les clĂ©s au format OpenSSH (voir lien 2: «Conversion de Putty en SecureCRT avec des clĂ©s d'authentification»). Depuis SecureCRT fonctionne librement avec le format OpenSSH. Et le logiciel PuTTYgen convertit le format OpenSSH en format Putty Private Key.


Conversion d'une clé RSA du format Putty Private Key (PuTTY) au format OpenSSH (SecureCRT)


Pour utiliser des clés RSA dans SecureCRT qui sont générées dans PuTTYgen et enregistrées au format Putty Private Key (* .ppk), nous les exportons à l'aide de PuTTYgen au format OpenSSH:

  1. Lancez PuTTYgen.
  2. Nous chargeons la clĂ© RSA existante au format Putty Private Key (* .ppk) → Le bouton «Charger».
  3. Enregistrez le fichier de clĂ© publique → «Enregistrer la clĂ© publique».
  4. Nous exportons la clĂ© secrĂšte au format OpenSSH: menu PuTTYgen → «Conversions» → «Exporter la clĂ© OpenSSH».
  5. Nous utilisons des fichiers OpenSSH dans SecureCRT. Le fichier avec la clé publique a l'extension .pub, le fichier avec la clé privée n'a pas d'extension.


Conversion d'une clé RSA du format VanDyke Private Key (SecureCRT) au format Putty Private Key (PuTTY)


Pour utiliser les clés RSA dans PuTTY générées dans SecureCRT et enregistrées au format VanDyke Private Key (fichier de clé publique * .pub, fichier de clé secrÚte *. (Sans extension)), exportez-les à l'aide de SecureCRT au format OpenSSH, puis en utilisant PuTTYgen, nous exportons au format Putty Private Key (* .ppk):

  1. Lancez SecureCRT.
  2. Menu "Outils" → "Convertir la clĂ© privĂ©e au format OpenSSH ..."
  3. Sélectionnez le fichier source avec les clés de la clé privée VanDyke.
  4. Nous enregistrons les clés OpenSSH avec un nouveau nom.
  5. Lancez PuTTYgen.
  6. Nous chargeons la clĂ© RSA existante au format OpenSSH (*.): Menu PuTTYgen → "Conversions" → "ClĂ© d'importation".
  7. Enregistrez le fichier au format Putty: «Enregistrer la clé privée».


Génération de clés publiques sur MAC OS X à l'aide du systÚme d'exploitation


Nous utiliserons l'utilitaire ssh-keygen intégré (man ssh-keygen).
Nous générons une clé RSA d'une longueur de 2048 bits avec le nom de la clé, le chemin d'accÚs au dossier avec l'emplacement de stockage de la clé:

ssh-keygen -b 2048 -t rsa -c "Lab router R4" -f /Users/ArtemiySP/Documents/python/r4

Au moment de l'exécution, le programme vous demandera un mot de passe pour protéger la clé RSA:

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 2048 -t rsa -C "Lab router R4" -f /Users/ArtemiySP/Documents/python/r4
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/ArtemiySP/Documents/python/r4.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r4.pub.
The key fingerprint is:
SHA256:WdT47SFvgGI7danxX94p8/cO3uyU12SB3ipkc7nHxzA Lab router R4
The key's randomart image is:
+---[RSA 2048]----+
|          .o     |
|         .. . .  |
|          .o + . |
|        oo+ B = .|
|       .S+ O OEoo|
|        o + + B*+|
|         . . =.*O|
|            .+o**|
|              =+O|
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

Nous générons une clé RSA d'une longueur de 4096 bits en indiquant le nom de la clé, le chemin d'accÚs au dossier avec l'emplacement de stockage de clé, nous définissons le mot de passe explicitement dans les paramÚtres de génération de clé (-N "cisco"):

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 4096 -t rsa -C "Lab router R5" -N "cisco" -f /Users/ArtemiySP/Documents/python/r5
Generating public/private rsa key pair.
Your identification has been saved in /Users/ArtemiySP/Documents/python/r5.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r5.pub.
The key fingerprint is:
SHA256:NraLRMqB4qmA8qNjKdpBBt1JBw8Osf/3GfuB2k1R+zY Lab router R5
The key's randomart image is:
+---[RSA 4096]----+
|  o.+..          |
| . * =           |
|. o + .       .  |
| . o         . . |
|. + o . S   . .  |
|o+.. = o o . . . |
|+oo o o o o o  Eo|
|*=.. . o = * . ..|
|Boo.  . o =.o    |
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

ParamÚtres de génération de clés déconseillés: une clé non fiable d'une longueur de 1024 bits, spécifiant le nom de la clé, le chemin d'accÚs au dossier avec l'emplacement de stockage des clés, nous définissons le mot de passe explicitement dans les paramÚtres de génération de clés (-N "" - sans mot de passe):

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 1024 -t rsa -C "Lab router R6" -N "" -f /Users/ArtemiySP/Documents/python/r6
Generating public/private rsa key pair.
Your identification has been saved in /Users/ArtemiySP/Documents/python/r6.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r6.pub.
The key fingerprint is:
SHA256:LEcfgN+58TYMDv4MpBA2FGCWc2aFiY+SxWBf7pRViWs Lab router R6
The key's randomart image is:
+---[RSA 1024]----+
|.++=o*.o+..      |
|.oB % +. o       |
| o X * .o...     |
|o . =  E+.=.     |
| .   oo+So.*     |
|      .oo o =    |
|         + . .   |
|          o      |
|                 |
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

Ainsi, nous avons créé trois clés avec les noms des clés et leur emplacement (par défaut, toutes les clés sont stockées dans / Users / [Username 022 / .ssh).

Par dĂ©faut, lors de la connexion via SSH avec authentification par clĂ© publique, toutes les clĂ©s publiques sont stockĂ©es dans l'ordre, qui sont stockĂ©es dans le dossier /Users/[Username†/.ssh.

Clé R6: renommez la clé en «id_rsa» (par défaut, le nom du fichier de clé généré est «id_rsa») et transférez-le dans le dossier avec les clés SSH (~ / .ssh /) (c'est-à-dire que nous effectuerons toutes les étapes afin que la clé R6 soit utilisée comme clé principale clé de connexion SSH par défaut):

Convertissez la clé publique OpenSSH au format RFC4716 (exportation vers Cisco IOS):

https://serverfault.com/questions/706336/how-to-get-a-pem-file-from-ssh-key-pair
ssh-keygen -f ~/Documents/python/r4.pub -e -m RFC4716
ssh-keygen -f ~/Documents/python/r5.pub -e -m RFC4716
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m RFC4716


Utilisation d'une clé publique sur l'équipement


Comment sur divers équipements pour lier une clé publique à un utilisateur?

Le processus de liaison d'une clé publique à un utilisateur n'est pas standard et varie d'un équipement à l'autre. Par conséquent, des exemples sont donnés pour chaque type d'équipement le plus souvent utilisé sur le réseau.


Cisco IOS XE, Catalyst (à partir de la version 15.1 et supérieure), IOS


  1. Il y a déjà un utilisateur sur l'appareil.
  2. Dans les paramÚtres SSH (ip ssh pubkey-chain) pour l'utilisateur (username cisco), spécifiez la clé publique (key-string):
    CSR-1#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    CSR-1(config)#ip ssh pubkey-chain 
    CSR-1(conf-ssh-pubkey)#username ssh-putty
    CSR-1(conf-ssh-pubkey-user)#key-string 
    CSR-1(conf-ssh-pubkey-data)#$QAAAQEAnPbynT1+2rjlyqP4viSPdTVDFLSHzWjJnAwy     
    CSR-1(conf-ssh-pubkey-data)#$NCfaqvMTPruCgG5096q8lO0ntURmNgmfMEQPOgb8weF     
    CSR-1(conf-ssh-pubkey-data)#$AtMQYk7WFM+5iBnOQ32UAHNavCUA7YFEpAdOQO4W/qB     
    CSR-1(conf-ssh-pubkey-data)#$SlOLy+PQ47jDUINBnuUeHd8ZXyzXxWglzSvqtwMEXBW     
    CSR-1(conf-ssh-pubkey-data)#$VoUTBYbJ45DmFa93P50qf494ujaAsTbYyJ/GBzJUTK/     
    CSR-1(conf-ssh-pubkey-data)#$UADAkNGxQARfOfHZWiIYb3rif6h6hfwwVUZS/Tw==       
    CSR-1(conf-ssh-pubkey-data)#exit
    CSR-1(conf-ssh-pubkey-user)#exit
    CSR-1(conf-ssh-pubkey)#exit
    CSR-1(config)#exit
    CSR-1#exit
    
    CSR-1#show running-config | inc ssh
    username ssh-public-key secret 5 $1$ebjc$EYgwMFQXPPiywFVn6rl7t.
    username ssh-putty privilege 15 secret 5 $1$vIhh$nM8iCeBKmLyVK4hA6./h4.
    ip ssh pubkey-chain
       key-hash ssh-rsa D4E9AD62F7F6265EAAB3FB8778477612
      username ssh-public-key
       key-hash ssh-rsa C331DEE821A84681A4A7B1862C100D16
      username ssh-putty
       key-hash ssh-rsa F32BEB60290EA75D151447C0D42D2A99
       key-hash ssh-rsa 5432C275B363B646E02D3BA7E8D865B7
    CSR-1#
    


Cisco ASA


LAB-ASA5516-X-01/pri/act# conf t
LAB-ASA5516-X-01/pri/act(config)# username artemiy password artemiy privilege $
LAB-ASA5516-X-01/pri/act(config)# username artemiy attributes 
LAB-ASA5516-X-01/pri/act(config-username)# ssh authentication publickey ?

username mode commands/options:
  WORD  Raw SSH-RSA public key
LAB-ASA5516-X-01/pri/act(config-username)# ssh authentication publickey AAAAB3$

Nous insérons la clé entiÚre sur une seule ligne (format OpenSSH).


Routeurs et commutateurs Huawei


[R1]rsa peer-public-key test-key1 encoding-type pem 
Enter "RSA public key" view, return system view with "peer-public-key end".
NOTE: The number of the bits of public key must be between 769 and 2048.
[R1-rsa-public-key]public-key-code begin 
Enter "RSA key code" view, return last view with "public-key-code end".
[R1-rsa-key-code]---- BEGIN SSH2 PUBLIC KEY ----
[R1-rsa-key-code]Subject: Subject
[R1-rsa-key-code]Comment: " Subject@Subject.local"
[R1-rsa-key-code]ModBitSize: 2048
[R1-rsa-key-code]AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
[R1-rsa-key-code]lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
[R1-rsa-key-code]63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
[R1-rsa-key-code]2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
[R1-rsa-key-code]yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
[R1-rsa-key-code]VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
[R1-rsa-key-code]---- END SSH2 PUBLIC KEY ----
[R1-rsa-key-code]public-key-code end
[R1-rsa-public-key]peer-public-key end 
[R1]display rsa peer-public-key 

=====================================
    Key name: test-key1
=====================================
Key Code:
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
---- END SSH2 PUBLIC KEY ----
aaa
local-user jet privilege level 15
 local-user jet service-type telnet terminal ssh http
ssh user jet assign rsa-key test-key1

Types de formats de clés importés vers Huawei:

«SecureCRT et PuTTY génÚrent des clés RSA au format PEM.»

rsa peer-public-key test-key1 encoding-type pem

"L'OpenSSH génÚre des clés RSA au format OpenSSH."

rsa peer-public-key test-key1 encoding-type openssh

"L'OpenSSL génÚre des clés RSA au format DER."

rsa peer-public-key test-key1 encoding-type der

La valeur par défaut est en hexadécimal:

rsa peer-public-key test-key1

Remarque: l'équipement Huawei prend en charge non seulement les clés au format RSA, mais également d'autres formats:

ssh user user-name assign { rsa-key | dsa-key | ecc-key } key-name

Vous pouvez définir de maniÚre rigide le type d'authentification pour l'utilisateur via SSH:

[R1]ssh user jet authentication-type ?
  all           All authentication, password,RSA or ECC
  ecc           ECC authentication
  password      Password authentication
  password-ecc  Both password and ECC
  password-rsa  Both password and RSA
  rsa           RSA authentication
[R1]

Autrement dit, nous autorisons l'accÚs à l'aide d'un mot de passe, de clés publiques et privées, ou des deux.


Huawei USG (6000)


La configuration est complÚtement similaire aux paramÚtres du routeur, mais possÚde certaines fonctionnalités.

Par dĂ©faut, le niveau de privilĂšge aprĂšs la journalisation Ă  l'aide de certificats est 0 et ne peut pas ĂȘtre Ă©levĂ©. Par consĂ©quent, le niveau de prioritĂ© est dĂ©fini Ă  l'aide de

user-interface vty 0 4 
user privilege level 15
user-interface vty 16 20:
user privilege level 15

Exemple:

[USG-a]rsa peer-public-key test-key1 encoding-type pem 
Enter "RSA public key" view, return system view with "peer-public-key end".
[USG-a-rsa-public-key]public-key-code begin
Enter "RSA key code" view, return last view with "public-key-code end".
[USG-a-rsa-key-code]---- BEGIN SSH2 PUBLIC KEY ----
[USG-a-rsa-key-code]Subject: subject
[USG-a-rsa-key-code]Comment: " subject@subject.local"
[USG-a-rsa-key-code]ModBitSize: 2048
[USG-a-rsa-key-code]AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
[USG-a-rsa-key-code]lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
[USG-a-rsa-key-code]63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
[USG-a-rsa-key-code]2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
[USG-a-rsa-key-code]yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
[USG-a-rsa-key-code]VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
[USG-a-rsa-key-code]---- END SSH2 PUBLIC KEY ----
[USG-a-rsa-key-code]public-key-code end
[USG-a-rsa-public-key]peer-public-key end
[USG-a]
[USG-a]ssh user admin assign rsa-key test-key1
! Out-of-band management interface:
[USG-a-GigabitEthernet0/0/0]service-manage ssh permit
! Grant user level 15 privillege:
[USG-a]user-interface vty 0 4
[USG-a-ui-vty0-4]user privilege level 15


Cisco Nexus 9.3


Option 1: pré-installez le fichier de clé publique sur l'appareil et joignez le fichier de clé publique à l'utilisateur.

  • Copiez le fichier de clĂ© publique sur l'appareil.
  • Nous demandons Ă  l'utilisateur d'utiliser le fichier de clĂ© publique.

switch# copy tftp://10.10.1.1/secsh_file.pub bootflash:secsh_file.pub
username User1 sshkey file bootflash:secsh_file.pub

Option 2: copiez la clé publique à l'utilisateur:

username User1 sshkey
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnxlTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZayI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTPVdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7


Utilisation d'une clé secrÚte pour la connexion SSH


Cette section est consacrée à la configuration des clients SSH pour l'authentification à l'aide des clés RSA sur l'équipement réseau (ou tout autre équipement, à condition que le matériel et les logiciels prennent en charge l'authentification par clé publique).

Nous envisagerons de configurer l'utilisation de la clé publique dans les programmes les plus populaires: SecureCRT et PuTTY.


SecureCRT


Il y a une liste d'authentification dans la fenĂȘtre des paramĂštres SSH. Dans ce document, vous devez augmenter la prioritĂ© de PublicKey au plus haut - placez-la en haut de la liste.



Ensuite, allez dans les options PublicKey et sélectionnez le fichier de clé privée. Le commutateur le plus haut vous permet d'utiliser les paramÚtres globaux de la clé secrÚte ou des paramÚtres de session - une autre clé secrÚte (clé non par défaut) - uniquement pour cette connexion.



Configurez la clĂ© publique globale: dans le menu Options → Options globales → CatĂ©gorie SSH2.



Mastic


Dans les paramĂštres SSH (Connexion → SSH → Auth) dans le champ «Fichier de clĂ© privĂ©e pour l'authentification», spĂ©cifiez le fichier Putty Private Key (* .ppk):



MAC OS X


Configuration d'un client standard pour l'utilisation des clés publiques:

  • Connexion avec une clĂ© non par dĂ©faut spĂ©cifiĂ©e manuellement:

    artemiy-2:~ ArtemiySP$ ssh r4@10.31.73.29 -i ~/Documents/python/r4
    The authenticity of host '10.31.73.29 (10.31.73.29)' can't be established.
    RSA key fingerprint is SHA256:fxOLFKU6YGyIqisrIh2P0O52Rr6Wx/wsSAcHsTz8fo0.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.29' (RSA) to the list of known hosts.
    CSR-4#
    
  • Connexion avec une clĂ© non par dĂ©faut spĂ©cifiĂ©e manuellement:

    artemiy-2:~ ArtemiySP$ ssh r5@10.31.73.30 -i ~/Documents/python/r5
    The authenticity of host '10.31.73.30 (10.31.73.30)' can't be established.
    RSA key fingerprint is SHA256:4l67C4Il4pTaqYT4vrtWr0aY7rPmNWKsjRv2zlYtQIU.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.30' (RSA) to the list of known hosts.
    MGTU#exit
    Connection to 10.31.73.30 closed.
    

    Exemple d'erreur
    — . MAC OS X — .
  • Connexion avec la clĂ© par dĂ©faut (clĂ© par dĂ©faut - le systĂšme lui-mĂȘme trouvera et utilisera la clĂ© publique par dĂ©faut):

    artemiy-2:~ ArtemiySP$ ssh r6@10.31.73.31
    The authenticity of host '10.31.73.31 (10.31.73.31)' can't be established.
    RSA key fingerprint is SHA256:2/ysACJQw48Q8S45ody4wna+6nJspcsEU558HiUN43Q.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.31' (RSA) to the list of known hosts.
    PR#exit
    Connection to 10.31.73.31 closed.
    artemiy-2:~ ArtemiySP$ 
    


Comment simplifier le travail avec SSH sur MAC OS X:


  • CrĂ©ez des alias SSH.
  • Dans les alias SSH, nous dĂ©finissons immĂ©diatement les utilisateurs.
  • Enregistrez immĂ©diatement l'emplacement des clĂ©s.

L'emplacement des alias et la configuration SSH prĂ©configurĂ©e sont spĂ©cifiĂ©s dans le fichier ~ / .ssh / config (/Users/[Username†/.ssh/config).

Rempli de cette façon:

host r4
   Hostname 10.31.73.29
   Port 22
   User r4
   IdentityFile ~/Documents/python/r4

host r5
   Hostname 10.31.73.30
   Port 22
   User r5
   IdentityFile ~/Documents/python/r5

host r6
   Hostname 10.31.73.31
   Port 22
   User r6

Remarque: ma connexion par défaut est mal configurée (je ne sais pas comment faire correctement), car la connexion à l'hÎte R6 (10.31.73.31) prend trÚs longtemps. Il est recommandé de spécifier immédiatement le chemin d'accÚs à la clé par défaut.

Un exemple de connexion ssh utilisant des clés publiques et un fichier de configuration:

artemiy-2:Documents ArtemiySP$ ssh r5
MGTU#exit
Connection to 10.31.73.30 closed by remote host.
Connection to 10.31.73.30 closed.
artemiy-2:Documents ArtemiySP$ ssh r4
CSR-4#exit
Connection to 10.31.73.29 closed by remote host.
Connection to 10.31.73.29 closed.
artemiy-2:Documents ArtemiySP$ ssh r6
PR#exit
Connection to 10.31.73.31 closed.
artemiy-2:Documents ArtemiySP$ ssh r6
PR#


Conclusion


Les clĂ©s RSA peuvent ĂȘtre utilisĂ©es pour remplacer l'authentification par mot de passe, mais pas dans tous les cas:

  • L'authentification par clĂ© publique n'est pas possible si l'authentification de domaine est configurĂ©e (car les requĂȘtes LDAP (kerberos) au serveur sont mandatĂ©es pour l'authentification).
  • L'authentification par clĂ© publique sur l'ancien Ă©quipement rĂ©seau n'est pas possible (exemple: Ă©chec de la configuration sur Cisco Catalyst 2960 avec le firmware 12.2).

Les clés publiques protégées par mot de passe sont facilement utilisées dans les équipements de banc. Inconvénient: il est nécessaire d'envoyer un tas de clés privées et publiques à des collÚgues et partenaires.

Sur certains équipements, plusieurs paires de clés publiques peuvent correspondre à un utilisateur, sur d'autres équipements une seule clé publique correspond à un utilisateur.

Il existe également différents formats dans lesquels une paire de clés publiques et privées est stockée. Mais ce guide vous aidera à exporter des clés dans différents formats.

Aujourd'hui, il est optimal d'utiliser des clĂ©s d'une longueur de 2048 bits, mais pour certains Ă©quipements, il s'agit de la longueur de clĂ© maximale possible (peut-ĂȘtre que cela sera corrigĂ© dans le nouveau firmware). Par exemple:

[R1]rsa peer-public-key test-key2 encoding-type pem
Enter "RSA public key" view, return system view with "peer-public-key end".
NOTE: The number of the bits of public key must be between 769 and 2048.
[R1-rsa-public-key]

Il est recommandé d'utiliser des clés publiques pour remplacer les mots de passe si les mots de passe sont entrés à l'aide de scripts (exemple: connexion automatique dans SecureCRT).

Il est recommandé d'utiliser des clés publiques pour se protéger contre la transmission de mots de passe sur le réseau.

Certains logiciels utilisent par défaut des clés publiques pour l'authentification SSH au lieu d'un mot de passe (exemple: Ansible).


Liste des sources:


  1. Wikipedia RSA
  2. Conversion de Putty en SecureCRT avec authentification. clés, SecureCRT Forum
  3. Guide de configuration Secure Shell, Cisco IOS version 15E
  4. Télécharger PuTTYgen
  5. Documentation officielle Huawei - une description des différents formats clés pour l'importation vers un routeur Huawei
  6. Huawei USG 6000, Configuration de l'authentification par clé publique (CLI: exemple de connexion à la CLI à l'aide de STelnet (authentification RSA))
  7. Nexus 9000 Configuration guide SSH public key
  8. man ssh-keygen — mac os x.
  9. SSH config file MAC OS X
  10. SSH
  11. SSH config
  12. openssh public key RFC4716

All Articles