Autenticación en equipos de red a través de SSH usando claves públicas

Montón de llaves

Por defecto, los ingenieros se conectan a los equipos de red utilizando un nombre de usuario y contraseña. A través de Telnet, las credenciales de los usuarios se transmiten en texto claro y a través de SSH encriptadas. Para no transmitir la parte secreta a través de la red, se utiliza la autenticación de clave pública. Con esta autenticación, la clave pública del usuario se asigna previamente al usuario en el equipo. La clave privada no se transmite a través de la red.

Esta guía lo ayudará a comenzar a usar rápidamente las claves públicas para la autenticación al conectarse a equipos de red utilizando el protocolo SSH. La guía es aplicable tanto para Windows como para Mac OS X. Traté de hacerlo lo más simple e informativo posible. No está sobrecargado, pero responde las preguntas básicas:





También examiné los temas "doloridos":

  • Conversión de clave entre OpenSSH <==> SecureCRT <==> PuTTY.
  • Uso de diferentes pares de claves públicas para diferentes equipos. Una clave es buena, pero no aplicable en la realidad. Los diferentes clientes o equipos requieren diferentes pares de claves públicas (algunas con contraseña y otras sin ella).
  • Uso del MAC OS X nativo (nativo) para trabajar con claves públicas.
  • La guía también debería ayudar a usar Ansible con equipos de red, ya que Ansible usa OpenSSH con autenticación de clave pública de forma predeterminada.

El 90% del material presentado se prueba en equipos reales.


Introducción


Además de la autenticación de contraseña estándar (contraseña / teclado) en el protocolo SSH, también hay autenticación de clave pública (RSA).

Para referencia
RSA (https://ru.wikipedia.org/wiki/RSA) — . (public key) (private key). : . . , , .

La autenticación mediante claves RSA consta de varios pasos:


¿Por qué solo RSA? ¿Por qué no un DSA? Desafortunadamente, no encontré la respuesta a esta pregunta (y realmente no la busqué). Pero oficialmente, solo RSA es compatible con los equipos de Cisco.

Guía de configuración de Secure Shell, Cisco IOS Release 15E:

Secure Shell Configuration Guide, Cisco IOS Release 15E
Restrictions for Secure Shell Version 2 Support
Rivest, Shamir y Adleman (RSA) Generación de claves es un requisito del lado del servidor SSH. Los dispositivos que actúan como clientes SSH no necesitan generar claves RSA.

Intentando ingresar datos clave de DSA:

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


Crear una clave RSA pública


Se pueden crear un par de claves RSA utilizando diversas utilidades: SecureCRT, PuTTYgen o cualquier otro software. Al crear una clave, puede configurar Passphrase (protección de contraseña con una clave).


Generación de pares RSA en SecureCRT


SecureCRT -> Herramientas -> Crear clave pública ...:


Un poco de teoría → el botón "Siguiente>":


Tipo de certificado RSA / DSA → Seleccione RSA → botón "Siguiente>":


Contraseña de cifrado para la clave secreta (opcional, puede dejarla en blanco y no cifrar) + Comentario → botón "Siguiente>":


Elija la longitud de la clave (en SecureCRT versión 6.1.0 la longitud máxima de la clave es 2048 bits, en la versión 8.5.4 - 16 384 bits):




Generación de teclas → botón "Siguiente>": para generar números aleatorios, debe mover el mouse dentro de la ventana.



Guardar un par de claves → Seleccionar una ubicación de almacenamiento → Seleccionar un formato para una clave guardada (formato VanDuke Private, OpenSSH legacy, OpenSSH new) → Botón “Finalizar”:



SecureCRT pregunta si hacer que esta clave sea la clave predeterminada para SecureCRT:



Generación de pares RSA en PuTTYgen


Puede descargar PuTTYgen aquí: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html .

Lanzamiento de PuTTYgen:


Seleccione los parámetros (tipo de par: RSA; dimensión del bit de clave: 2048; opcionalmente, configure la frase de contraseña (protección de contraseña con contraseña)) → Generar:


Para garantizar números aleatorios, pide mover el mouse dentro de la ventana. Esta es una protección contra números pseudoaleatorios.


Guardar claves RSA → botón "Guardar clave privada":


Tenga en cuenta: las claves RSA almacenadas en un formato privado en un software no pueden utilizarse en software de otro fabricante. Es decir, un par de claves RSA creadas en PuTTYgen y guardadas en formato de clave privada Putty no es adecuado para su uso en SecureCRT, y viceversa. PuTTY solo admite el formato Putty Private Key. Una solución universal para distribuir claves es convertir las claves al formato OpenSSH (Ver enlace 2: “Conversión de Putty a SecureCRT con claves de autenticación”). Dado que SecureCRT funciona libremente con el formato OpenSSH. Y el software PuTTYgen convierte el formato OpenSSH en el formato Putty Private Key.


Conversión de una clave RSA del formato Putty Private Key (PuTTY) al formato OpenSSH (SecureCRT)


Para usar claves RSA en SecureCRT que se generan en PuTTYgen y se guardan en formato de Clave privada de Putty (* .ppk), las exportamos usando PuTTYgen en el formato OpenSSH:

  1. Lanzamiento de PuTTYgen.
  2. Cargamos la clave RSA existente en el formato Putty Private Key (* .ppk) → El botón "Cargar".
  3. Guarde el archivo de clave pública → "Guardar clave pública".
  4. Exportamos la clave secreta al formato OpenSSH: menú PuTTYgen → “Conversiones” → “Exportar clave OpenSSH”.
  5. Usamos archivos OpenSSH en SecureCRT. El archivo con la clave pública tiene la extensión .pub, el archivo con la clave privada no tiene extensión.


Conversión de una clave RSA del formato VanDyke Private Key (SecureCRT) al formato Putty Private Key (PuTTY)


Para usar claves RSA en PuTTY que se generan en SecureCRT y se guardan en el formato de clave privada VanDyke (archivo de clave pública * .pub, archivo de clave secreta *. (Sin extensión)), expórtelos usando SecureCRT en formato OpenSSH y luego usando PuTTYgen exportamos al formato de clave privada de masilla (* .ppk):

  1. Inicie SecureCRT.
  2. Menú "Herramientas" → "Convertir clave privada a formato OpenSSH ..."
  3. Seleccione el archivo fuente con las teclas VanDyke Private Key.
  4. Guardamos las claves OpenSSH con un nuevo nombre.
  5. Lanzamiento de PuTTYgen.
  6. Cargamos la clave RSA existente en el formato OpenSSH (*.): Menú PuTTYgen → “Conversiones” → “Importar clave”.
  7. Guarde el archivo en formato Putty: "Guardar clave privada".


Generando claves públicas en MAC OS X usando el sistema operativo


Utilizaremos la utilidad ssh-keygen incorporada (man ssh-keygen).
Generamos una clave RSA con una longitud de 2048 bits con el nombre de la clave, la ruta a la carpeta con la ubicación de almacenamiento de la clave:

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

En tiempo de ejecución, el programa solicitará una contraseña para proteger la clave 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$

Generamos una clave RSA con una longitud de 4096 bits para indicar el nombre de la clave, la ruta a la carpeta con la ubicación de almacenamiento de claves, establecemos la contraseña explícitamente en los parámetros de generación de claves (-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$

Parámetros de generación de claves que no se recomiendan: una clave poco confiable con una longitud de 1024 bits, que especifica el nombre de la clave, la ruta a la carpeta con la ubicación de almacenamiento de claves, establecemos la contraseña explícitamente en los parámetros de generación de claves (-N "" - sin contraseña):

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$

Entonces, creamos tres claves con los nombres de las claves y la ubicación de las claves (de forma predeterminada, todas las claves se almacenan en / Users / [Username 022 / .ssh).

De forma predeterminada, cuando se conecta a través de SSH con autenticación con una clave pública, todas las claves públicas se almacenan en secuencia, que se almacenan en la carpeta /Users/[Username†/.ssh.

Clave R6: cambie el nombre de la clave a "id_rsa" (de forma predeterminada, el nombre del archivo de clave generado es "id_rsa") y transfiérala a la carpeta con las claves SSH (~ / .ssh /) (es decir, realizaremos todos los pasos para que la clave R6 se utilice como principal clave de conexión SSH predeterminada):

Convierta la clave pública OpenSSH al formato RFC4716 (exportar a 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


Usar una clave pública en el equipo


¿Qué hay de varios equipos para vincular una clave pública a un usuario?

El proceso de vincular una clave pública a un usuario no es estándar y varía de un equipo a otro, por lo tanto, se dan ejemplos para cada tipo de equipo que se usa con mayor frecuencia en la red.


Cisco IOS XE, Catalyst (desde la versión 15.1 y superior), IOS


  1. Ya hay un usuario en el dispositivo.
  2. En la configuración de SSH (ip ssh pubkey-chain) para el usuario (nombre de usuario cisco), especifique la clave pública (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$

Insertamos la clave completa en una línea (formato OpenSSH).


Enrutadores y conmutadores 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

Tipos de formatos de clave importados a Huawei:

"SecureCRT y PuTTY generan claves RSA en formato PEM".

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

"OpenSSH genera claves RSA en formato OpenSSH".

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

"El OpenSSL genera claves RSA en formato DER".

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

El valor predeterminado es en hexadecimal:

rsa peer-public-key test-key1

Nota: El equipo Huawei no solo admite claves en formato RSA, sino también otros formatos:

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

Puede establecer rígidamente el tipo de autenticación para el usuario a través de 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]

Es decir, permitimos el acceso mediante una contraseña, claves públicas y privadas, o ambas.


Huawei USG (6000)


La configuración es completamente similar a la configuración del enrutador, pero tiene algunas características.

De forma predeterminada, el nivel de privilegio después de iniciar sesión con certificados es 0 y no se puede elevar. Por lo tanto, el nivel de prioridad se establece usando

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

Ejemplo:

[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


Opción 1: preinstale el archivo de clave pública en el dispositivo y adjunte el archivo de clave pública al usuario.

  • Copie el archivo de clave pública en el dispositivo.
  • Le indicamos al usuario que use el archivo de clave pública.

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

Opción 2: copie la clave pública al usuario:

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


Usando una clave secreta para la conexión SSH


Esta sección está dedicada a la configuración de clientes SSH para la autenticación utilizando claves RSA en el equipo de red (u otro equipo, siempre que el hardware y el software admitan la autenticación de clave pública).

Consideraremos configurar el uso de la clave pública en los programas más populares: SecureCRT y PuTTY.


SecureCRT


Hay una lista de autenticación en la ventana de configuración de SSH. En él, debe aumentar la prioridad de PublicKey a la más alta: situarla en la parte superior de la lista.



Luego vaya a las opciones de PublicKey y seleccione el archivo de clave privada. El interruptor superior le permite usar la configuración global de la clave secreta o la configuración de la sesión (otra clave secreta (clave no predeterminada)) solo para esta conexión.



Configure la clave pública global: en el menú Opciones → Opciones globales → Categoría SSH2.



Masilla


En la configuración de SSH (Conexión → SSH → Auth) en el campo “Archivo de clave privada para autenticación”, especifique el archivo Clave privada de masilla (* .ppk):



MAC OS X


Configurar un cliente estándar para usar claves públicas:

  • Conexión con una clave no predeterminada especificada manualmente:

    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#
    
  • Conexión con una clave no predeterminada especificada manualmente:

    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.
    

    Error de ejemplo
    — . MAC OS X — .
  • Conexión con la clave predeterminada (clave predeterminada: el sistema mismo buscará y utilizará la clave pública predeterminada):

    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$ 
    


Cómo simplificar el trabajo con SSH en MAC OS X:


  • Crear alias SSH.
  • En SSH Alias, configuramos inmediatamente a los usuarios.
  • Registre inmediatamente la ubicación de las claves.

La ubicación de los alias y la configuración SSH preconfigurada se especifican en el archivo ~ / .ssh / config (/Users/[Username†/.ssh/config).

Llenado de esta manera:

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

Nota: mi conexión predeterminada está configurada incorrectamente (no sé cómo hacerlo correctamente), porque la conexión al host R6 (10.31.73.31) lleva mucho tiempo. Se recomienda que especifique inmediatamente la ruta a la clave predeterminada.

Un ejemplo de una conexión ssh usando claves públicas y un archivo de configuración:

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#


Conclusión


Las claves RSA se pueden usar para reemplazar la autenticación de contraseña, pero no en todos los casos:

  • La autenticación de clave pública no es posible si la autenticación de dominio está configurada (porque las solicitudes LDAP (kerberos) al servidor están representadas para la autenticación).
  • La autenticación de clave pública en equipos de red antiguos no es posible (ejemplo: no se pudo configurar en Cisco Catalyst 2960 con firmware 12.2).

Las claves públicas protegidas con contraseña se utilizan convenientemente en equipos de banco. Desventaja: es necesario enviar un montón de claves privadas y públicas a colegas y socios.

En algunos equipos, varios pares de claves públicas pueden corresponder a un usuario, en otros equipos solo una clave pública corresponde a un usuario.

También hay diferentes formatos en los que se almacena un par de claves públicas y privadas. Pero esta guía lo ayudará a exportar claves en diferentes formatos.

Hoy en día, es óptimo usar claves con una longitud de 2048 bits, pero para algunos equipos esta es la longitud máxima posible de la clave (tal vez esto se arregle en un nuevo firmware). Por ejemplo:

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

Se recomienda utilizar claves públicas para reemplazar las contraseñas si se ingresan mediante scripts (por ejemplo: inicio de sesión automático en SecureCRT).

Se recomienda que utilice claves públicas para protegerse contra la transmisión de contraseñas a través de la red.

Algunos programas usan claves públicas de manera predeterminada para la autenticación SSH en lugar de una contraseña (ejemplo: Ansible).


Lista de fuentes:


  1. Wikipedia RSA
  2. Conversión de Putty a SecureCRT con autenticación. llaves, foro SecureCRT
  3. Guía de configuración de Secure Shell, Cisco IOS Release 15E
  4. Descargar PuTTYgen
  5. Documentación oficial de Huawei : una descripción de los diversos formatos clave para importar a un enrutador Huawei
  6. Huawei USG 6000, Configuración de autenticación de clave pública (CLI: ejemplo para iniciar sesión en la CLI mediante STelnet (autenticación 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