GNU/Linux >> Tutoriales Linux >  >> Linux

ssh-keyscan:aún se promociona con La autenticidad del host '[nombre de host] ([dirección IP])' no se puede establecer

Prueba esto:

ssh-keyscan -t rsa [ip_address]

Tome la salida y péguela en .ssh/known_hosts. Ahora, si quiere hacer hash de los hosts conocidos, haga esto:

ssh-keygen -H

editar: Aquí está la solución de un comando. Utiliza el nombre de host y las direcciones IP y calcula ambos.

ssh-keyscan -Ht rsa [hostname],[IP address] >> known_hosts

La respuesta de kschurig funcionará, pero no es necesariamente la más segura. Obtiene puntos de bonificación por hacer un esfuerzo adicional para permitirle identificar el servidor por más de un URI, es decir, nombre de host y dirección IP. Es decir, podría seguir agregando URI válidos de ese host ampliando la lista delimitada por comas.

Sin embargo, estaba buscando una forma mundana de eludir la interacción manual del host desconocido de clonar un repositorio git como se muestra a continuación y debería ayudar a explicar lo que está sucediendo y cómo puede evitar esta parte de la secuencia de comandos relacionada con SSH:

[email protected]:~$ git clone [email protected]:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

Tenga en cuenta la huella digital de la clave RSA...

Entonces, esto es una cosa de SSH, esto funcionará para git sobre SSH y solo cosas relacionadas con SSH en general...

[email protected]:~$ nmap bitbucket.org --script ssh-hostkey

Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
| ssh-hostkey:
|   1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_  2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds

Primero, instale nmap en su controlador diario. nmap es muy útil para ciertas cosas, como detectar puertos abiertos y esto:verificar manualmente las huellas digitales SSH. Pero, volviendo a lo que estamos haciendo.

Bien. O estoy comprometido en los múltiples lugares y máquinas en los que lo revisé, o la explicación más plausible de que todo está bien es lo que está sucediendo.

Esa 'huella digital' es solo una cadena acortada con un algoritmo unidireccional para nuestra conveniencia humana a riesgo de que más de una cadena se resuelva en la misma huella digital. Sucede, se llaman colisiones.

Independientemente, volvamos a la cadena original que podemos ver en el contexto a continuación.

[email protected]:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg

Entonces, con anticipación, tenemos una forma de solicitar una forma de identificación del host original.

En este punto, somos tan vulnerables de forma manual como automática:las cadenas coinciden, tenemos los datos básicos que crean la huella digital y podríamos solicitar esos datos básicos (para evitar colisiones) en el futuro.

Ahora, para usar esa cadena de una manera que evite preguntar sobre la autenticidad de un host...

El archivoknown_hosts en este caso no utiliza entradas de texto sin formato. Reconocerás las entradas con hash cuando las veas, parecen hashes con caracteres aleatorios en lugar de xyz.com o 123.45.67.89.

[email protected]:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

La primera línea de comentario aparece de manera exasperante, pero puedes deshacerte de ella con una simple redirección a través de la convención ">" o ">>".

Como hice todo lo posible para obtener datos no contaminados que se usarán para identificar un "host" y confiar, agregaré esta identificación a mi archivo unknown_hosts en mi directorio ~/.ssh. Dado que ahora se identificará como un host conocido, no recibiré el aviso mencionado anteriormente cuando eras joven.

Gracias por seguir conmigo, aquí tienes. Estoy agregando la clave RSA de bitbucket para poder interactuar con mis repositorios git allí de una manera no interactiva como parte de un flujo de trabajo de CI, pero haga lo que quiera.

#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts

Entonces, así es como te mantienes virgen por hoy. Puedes hacer lo mismo con github siguiendo instrucciones similares en tu propio tiempo.

Vi tantas publicaciones de desbordamiento de pila que le decían que agregue la clave mediante programación a ciegas sin ningún tipo de verificación. Cuanto más verifique la clave de diferentes máquinas en diferentes redes, más confianza tendrá en que el host es el que dice ser, y eso es lo mejor que puede esperar de esta capa de seguridad.

INCORRECTOssh -oStrictHostKeyChecking=sin nombre de host [comando]

INCORRECTOssh-keyscan -t rsa -H nombre de host>> ~/.ssh/hosts_conocidos

No hagas ninguna de las cosas anteriores, por favor. Tiene la oportunidad de aumentar sus posibilidades de evitar que alguien espíe sus transferencias de datos a través de un ataque de hombre en el medio:aproveche esa oportunidad. La diferencia es, literalmente, verificar que la clave RSA que tiene es la del servidor de buena fe y ahora sabe cómo obtener esa información para compararlos y confiar en la conexión. Solo recuerde que más comparaciones de diferentes computadoras y redes generalmente aumentarán su capacidad de confiar en la conexión.


Linux
  1. 3 cosas útiles que puedes hacer con la herramienta IP en Linux

  2. ¿Puedo actualizar el sistema con un Live Cd?

  3. ¿Cómo puede un script bash saber el directorio en el que está instalado cuando se obtiene con . ¿operador?

  4. ¿Cómo puedo limitar el caché utilizado al copiar para que todavía haya memoria disponible para otro caché?

  5. ¿Cómo puedo instalar la última Anaconda con wget?

4 formas de editar un PDF con el comando pdftk-java

¿Cómo puedo controlar el teclado y el mouse con Python?

Al leer un archivo con `less` o `more`, ¿cómo puedo obtener el contenido en colores?

Puede hacer ping/ssh a través de LAN pero no con Wi-Fi

¿Puedo agregar automáticamente un nuevo host a unknown_hosts?

¿Cómo puedo conectarme a Postgres ejecutándose en el host de Windows desde dentro de WSL2?