¿Qué es una clave SSH?

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

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.

Las claves de Secure Shell (SSH) se basan en el principio de la criptografía de clave pública.

En una palabra:

Se generan un par de claves de cifrado que están matemáticamente vinculadas entre sí: una clave privada y una clave pública. La clave pública se usa para cifrar un mensaje, mientras que la clave privada se usa para descifrarlo. Esto proporciona una propiedad muy agradable que permite a cualquier persona que tenga acceso a la clave pública cifrar un mensaje que solo puede ser descifrado por alguien con acceso a la clave privada.

El inverso de esta propiedad se usa para crear firmas digitales en las que un remitente usa la clave privada para firmar digitalmente un mensaje y un receptor usa la clave pública correspondiente (que se ha verificado a través de otros canales para pertenecer al remitente) para verificar la firma . El receptor puede estar seguro de que el mensaje fue de alguien con acceso a la clave privada. Esto forma la base de la autenticación de clave pública.

El protocolo SSH usa claves para la autenticación de dos maneras:

  • Autenticando usuarios

Aquí es donde el servidor SSH verifica la identidad del usuario que se está conectando. SSH ofrece varios métodos de autenticación de usuarios. La autenticación de contraseña es la más común, pero la autenticación de clave pública es otra.
Cuando se utiliza la autenticación de clave pública, el servidor SSH verifica si el usuario que intenta autenticarse en una cuenta que tiene una clave pública autorizada posee la clave privada correspondiente. Las claves utilizadas para este propósito se denominan claves de usuario SSH.

  • Autenticando servidores

Aquí es donde el cliente SSH verifica la identidad del servidor SSH. Permite a los usuarios que se conectan a un servidor verificar que este sea, de hecho, el mismo servidor SSH al que me conecté la última vez o que este sea el servidor que dice ser (básicamente para evitar un ataque Man-in-the-middle). Las claves utilizadas para este propósito se denominan claves de host SSH.

Al referirse a las teclas SSH, el orador podría referirse a cualquiera de estas (claves de usuario o claves de host). La mayoría de las veces (a menos que sea un administrador del sistema) cuando alguien habla de claves SSH, generalmente se refieren a claves de usuario.

Si bien la clave pública está destinada a ser compartida (en el caso de las claves SSH copiadas en el servidor SSH en una ubicación en particular), la clave privada, como su nombre lo indica, debe mantenerse como lo haría cualquier persona que tenga acceso a la clave privada poder descifrar y firmar mensajes en nombre del propietario. Algunas pautas generales para proteger una clave privada son garantizar los permisos seguros del sistema de archivos (cuando la clave se almacena en el disco) y, en general, no copiarla del sistema donde se generó. También es posible (y muy recomendable) encriptar claves SSH con una frase de contraseña. Si lo hace, evitará que alguien que logró obtener una copia de la clave privada lo use sin tener que conocer también la frase de contraseña.

Una nota adicional e interesante con respecto a las claves SSH es que el uso de claves SSH en la autenticación del usuario en realidad proporciona una mejor protección (que, por ejemplo, la autenticación de contraseña) contra un ataque Man-in-the-middle en el caso en que el atacante ha comprometido el servidor SSH. Esto tiene que ver con la forma en que se calculan los identificadores de sesión cuando se usa la autenticación de clave pública. Se pueden encontrar más detalles sobre esto en SSH Man-in-the-Middle Attack y Public-Key Authentication Method.

Aquí hay una respuesta simple: una clave SSH es uno de los dos archivos utilizados en un método de autenticación conocido como autenticación de clave pública SSH. En este método de autenticación, un archivo (conocido como la clave privada) generalmente se mantiene en el lado del cliente y el otro archivo (conocido como la clave pública) se almacena en el lado del servidor.

No hay dos pares de claves SSH iguales. Entonces, en teoría, puede usar un par para la autenticación. Así es como funciona:

Cuando un usuario inicia sesión en una sesión SSH, debe enviar la clave privada asociada con su cuenta de usuario en el servidor. El servidor puede verificar la identificación del usuario comparando la clave privada enviada con la clave pública asociada con la cuenta del usuario. Si las dos claves coinciden, el usuario se autentica y se le permite el acceso al servidor.

SSH es Secure socket shell … Se utiliza para la autenticación de inicio de sesión, mientras que necesitamos iniciar sesión de forma remota en un servidor / servidor / computadora privado virtual ubicado en una ubicación remota o puede hacerlo usted mismo en su computadora portátil / computadora …

Si bien queremos usar la clave SSH para iniciar sesión, debemos estudiar los conceptos de criptografía.

Definición aquí – http: //searchsecurity.techtarget

Respuesta clave de SSH de Wikipedia:

SSH usa criptografía de clave pública para autenticar la computadora remota y permitirle autenticar al usuario, si es necesario. Hay varias formas de usar SSH ; uno es usar pares de claves públicas-privadas generadas automáticamente para simplemente encriptar una conexión de red, y luego usar la autenticación de contraseña para iniciar sesión.

Hay algunos tipos de claves que se pueden usar en consecuencia según las necesidades del usuario.

Se utiliza en una medida de seguridad de par de claves cifradas para permitir que solo el usuario SSH autenticado acceda a la computadora remota.

Piense en ello como una contraseña para el acceso SSH.

ssh usa claves privadas públicas.

cuando ejecuta ssh-keygen, dos claves, basadas en el cifrado rsa de forma predeterminada, se colocan en su directorio de inicio en .ssh /

A saber, id_rsa e id_rsa.pub. Si tuviera que ejecutar ssh-copy-id, id_rsa.pub se copiaría en el archivo .ssh / optional_keys del usuario remoto. Esto le permite iniciar sesión en la máquina remota sin usar una contraseña.

Otro uso de las claves ssh es que cada sistema remoto tiene claves de host que identifican el host para el usuario local. Estas claves se almacenan en el archivo .ssh / known_hosts de los usuarios locales. Esta clave se copia la primera vez que inicia sesión en un sistema remoto. Si esa clave se cambia cuando intenta iniciar sesión en el sistema remoto, ssh se quejará de que se modificó la clave del host y no le permitirá ingresar.