El sistema Secure Shell (SSH) se puede configurar para permitir el uso de diferentes tipos de autenticación. El tipo de autenticación habitual requiere que se autentique con una contraseña, pero también se puede autenticar mediante Criptografía de clave pública. Para ello, genera un par de claves SSH, que consta de una clave pública y una clave privada . Mantiene la clave privada en su propio sistema o en el sistema desde el que se conecta, y copia la clave pública en el sistema al que se está conectando. (Tenga en cuenta que estas claves solo se utilizan con fines de autenticación y no desempeñan ningún papel una vez que se establece la conexión).
NB: Las siguientes instrucciones paso a paso están destinadas a sistemas Unix / Linux.
Para utilizar la autenticación de clave pública, primero genere un par de claves en su propio sistema, con el comando:
ssh-keygen -t dsa
Esto genera un par de archivos en el directorio .ssh debajo de su directorio de inicio, id_dsa e id_dsa.pub. id_dsa contiene la clave privada, mientras que id_dsa.pub contiene la clave pública. (Las claves utilizan el algoritmo de firma digital). Copie el archivo de clave pública en el sistema de destino, como con el siguiente comando:
scp ~/.ssh/id_dsa.pub [email protected] :~
(Tendrá que usar su contraseña para esto).
- ¿Cuál es la diferencia, si hay alguna, entre el servidor DNS y el servidor de nombres?
- ¿Qué protocolo de E / S (como USB, PCIe o SATA) es actualmente el mejor para aprender para la verificación de SOC?
- ¿Caducan los códigos de autenticación de dos factores?
- ¿Cuál es la diferencia entre el protocolo basado en mensajes y el protocolo basado en secuencias?
- ¿Por qué no se pueden rediseñar los protocolos orientados a la conexión para evitar vulnerabilidades?
Ahora ssh al sistema de destino como de costumbre, y use el siguiente comando:
cat id_dsa.pub >> ~/.ssh/authorized_keys
Esto agrega el contenido del archivo (la clave pública) al archivo autorizado de claves SSH, que contiene una lista de todas las claves públicas que pueden autenticarse en esta cuenta de usuario.
Ahora salga y vuelva al sistema de destino. Si ha hecho esto correctamente, no se le pedirá una contraseña, ya que el sistema de clave pública lo habrá autenticado. (Si no funciona, es posible que deba iniciar sesión con una contraseña y luego cambiar los permisos en el archivo autorizado_keys con el comando “chmod 600 ~ / .ssh / Authorizedkeys”. O el administrador del servidor puede haber configurado SSH en ese sistema para no utilizar la autenticación de clave pública.)
Hay otras opciones que puede usar al generar el par de claves; puede usar diferentes algoritmos de clave pública y / o longitudes de clave, y también puede establecer una “frase de contraseña” local en la clave pública que deberá ingresar para “desbloquearla” cada vez que quiera usarla, como medida de seguridad adicional. Como esto puede ser engorroso, también existen programas llamados agentes SSH , que almacenarán en caché sus claves y las presentarán a los servidores a los que accede en su nombre, por lo que solo tiene que ingresar la frase de contraseña local una vez.
Hay otro tipo de clave SSH que también se usa. Cada servidor tiene su propio par de claves pública / privada, y las claves públicas de todos los servidores a los que ha accedido se almacenan en el archivo “known_hosts” en su directorio .ssh. Cuando se conecta a un servidor, SSH verifica si tiene la clave pública del servidor; si no, muestra un mensaje y le permite verificar que desea conectarse a ese servidor, y luego almacena la clave pública en el archivo known_hosts si continúa con la conexión. Si tiene la clave pública, pero no puede descifrar con éxito un desafío enviado por el servidor cifrado con la clave privada de ese servidor (por ejemplo, si las claves del servidor han cambiado), SSH muestra un mensaje de error y no le permitirá conectarse, ya que Esto podría ser una señal de que alguien está manipulando la conexión o el servidor. (También podría ser benigno; por ejemplo, si se ha reinstalado el sistema operativo del servidor, las claves SSH del servidor podrían haber cambiado). Para remediar esto, puede editar el archivo known_hosts y eliminar la clave pública errante (el mensaje de error a menudo señale en qué línea del archivo se puede encontrar la clave incorrecta) y permita que el servidor le envíe una nueva clave la próxima vez que se conecte a ella.