2012-08-06 9 views

Respuesta

31

Establezca la opción StrictHostKeyChecking en no, ya sea en el archivo de configuración o en -o.

Uso e opción de rsync pasar opciones al ssh:

-e "ssh -o StrictHostKeyChecking=no" 
+1

Gracias! Mi caso: SemaphoreCI se cuelga de un aviso sin deshabilitar este control. – Dmitriy

2

lo tanto, yo estaba encontrando una gran cantidad de respuestas inseguras que trabajo-- pero la mejor manera no es mucho más trabajo, por lo que' he estado buscando publicaciones que aconsejan la forma menos segura de hacer cosas relacionadas con SSH, como rsync. Había estado buscando una manera mundana a pasar por alto la interacción manual anfitrión desconocido de clonar un repositorio git como se muestra a continuación, pero funciona para rsync como se ha mencionado y otras tecnologías:

[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)? 

Nota de la huella de la clave RSA ...

por lo tanto, esto es una cosa SSH, esto funcionará para Git a través de SSH y sólo en relación SSH cosas 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 

en primer lugar, instalar nmap en su diario de conductor. nmap es muy útil para ciertas cosas, como la detección de puertos abiertos y esto ... verificando manualmente las huellas digitales de SSH. Pero, de vuelta a lo que estamos haciendo.

Bueno. Estoy comprometido en los múltiples lugares y máquinas que lo he comprobado ... o la explicación más plausible de que todo es Hunky Dory es lo que está sucediendo.

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

De todos modos, volvamos a la secuencia original que podemos ver en 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 

Así que, antes de tiempo, tenemos una forma de solicitar una forma de identificación del host original.

En este punto, somos manualmente tan vulnerables como automáticamente-- las cadenas coinciden, tenemos los datos base que crean la huella dactilar, y podríamos solicitar esa base de datos (prevención de colisiones) en el futuro.

Ahora utilizar dicha cadena de una manera que impide preguntar sobre una autenticidad anfitriones ...

El archivo known_hosts en este caso no utiliza entradas de texto plano. Sabrá las entradas hash cuando las vea, se ven como hash 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 muestra exasperante up-- pero usted puede deshacerse de ella con un simple redirección a través de la ">" o ">>" convención.

Como he hecho todo lo posible para obtener datos no contaminados que se utilizarán para identificar un "host" y confianza, agregaré esta identificación a mi archivo known_hosts en mi directorio ~/.ssh. Como ahora se identificará como un host conocido, no recibiré el aviso mencionado anteriormente cuando eras un niño.

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

#!/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. Puede hacer lo mismo con github siguiendo instrucciones similares en su propio tiempo.

He visto tantas columnas de desbordamiento de pila que le piden que agregue la clave por programación a ciegas sin ningún tipo de comprobación. Mientras más controles la clave de diferentes máquinas en diferentes redes, más confianza puedes tener de que el host sea el que dice ser, y eso es lo mejor que puedes esperar de esta capa de seguridad.

MAL ssh -oStrictHostKeyChecking = ningún nombre de host [comando]

MAL ssh-keyscan -t rsa -H hostname >> ~/.ssh/known_hosts

No practico cualquiera de las cosas anteriores, por favor. Te dan la oportunidad de aumentar tus posibilidades de evitar a alguien que está escuchando a escondidas tus transferencias de datos a través de un hombre en el ataque medio. Aprovecha esa oportunidad. La diferencia es, literalmente, verificar que la clave RSA que tiene es la del servidor de buena fe y ahora usted sabe cómo obtener esa información para compararla y así poder confiar en la conexión. Simplemente recuerde que más comparaciones de diferentes computadoras & redes generalmente aumentará su capacidad para confiar en la conexión.

Cuestiones relacionadas