Por que o SSHing para um servidor me deu IDENTIFICAÇÃO DO HOST REMOTO MUDOU, mas meu arquivo known_hosts e o servidor não foram alterados?

3

Colocando isso aqui na tentativa de ajudar outras pessoas que podem se deparar com esse problema obscuro.

Eu recentemente atualizei o OSX do Mavericks para o El Capitan. Em seguida, tentei fazer login em um sistema no qual eu tinha feito login anteriormente, e o ssh emitiu esse erro:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Btm9/3heWnRLKNiuhw4efh6sQWqCr/dNJUD87ejdR6k.
Please contact your system administrator.
Add correct host key in /Users/myuser/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/myuser/.ssh/known_hosts:33
ECDSA host key for real.hostname.com has changed and you have requested strict checking.
Host key verification failed.

Eu procurei no meu arquivo hosts conhecido e vi a chave pública:

real.hostname.com,192.168.0.138 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHxFq6UNxndgThogOpKGYHK0HpmK1niGPBdNVyo9Q8zX//ms3joRH+tvL0RigJ+i5f0qSUjK2j80BYyCjnCXkYJ+YIPOGioGiuFGuoFutvJLH4iXT652b2WxJJwPqAvz70Xez1ToFxsIl8H0noUNTmlXRsfY0G5gX+089aghq3hH8OGUIGoyGCrv7Dpdh+tiMDXQqz0R4yhOa0iAojv+SVqbzArT8/AxC8VzuNDww6Fi96rxK1vaFg9SJEegwAZzWcbUFopA4cb8r7sQ5tHG56L5zX9/Yadg4/Pf02O6dP62M1rW7x6VoG/gEa72axqV/izm7/ws7SASsiKtHKRijf

Em seguida, fui para outra máquina, verifiquei a chave acima correspondida que no arquivo known_hosts da outra máquina. Em seguida, conectei-me dessa outra máquina a real.hostname.com sem nenhum erro ou aviso.

Por que isso aconteceu?

    
por Stuart Horner 16.12.2015 / 02:23

1 resposta

3

A chave aqui é a atualização do Mavericks para o El Capitan. Acontece que o cliente ssh foi atualizado em El Capitan, então quando ele tenta se conectar a um servidor ssh, ele agora usa um tipo de chave diferente ao invés de "ssh-rsa".

Neste caso, o ssh tenta usar "ecdsa-sha2-nistp256". Em um sistema mais novo, se você executar "ssh-keyscan" no domínio, ele irá citar tanto o tipo de chave ssh-rsa quanto o ecdsa-sha2-nistp256:

myname@myhost-1:~$ ssh-keyscan real.hostname.com
# real.hostname.com SSH-2.0-OpenSSH_6.6.1
real.hostname.com ecdsa-sha2-nistp256 k8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvAAIbmlzdHAyNTYAAABBBAOq0InBTTdCqbaackF5biy0QghSFZBV/MRoL936yOAXgPAnZlHl+zQ5weK7nM2UNt2qGxqWKLSZ6gE6slZnQkw=
# real.hostname.com SSH-2.0-OpenSSH_6.6.1
real.hostname.com ssh-rsa k8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvk8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvFq6UNxndgThogOpKGYHK0HpmK1niGPBdNVyo9Q8zX//ms3joRH+tvL0RigJ+i5f0qSUjK2j80BYyCjnCXkYJ+k8DaAFOzRyv0kbP8Ua48IIiXT652b2WxJJwPqAvz70Xez1ToFxsIl8H0noUNTmlXRsfY0G5gX+HGXoLuLsr9VEghX2oyGCrv7Dpdh+tiMDXQqz0R4yhOa0iAojv+SVqbzArT8/AxC8VzuNDww6Fi96rxK1vaFg9SJEegwAZzWcbUFopA4cb8r7sQ5tHG56L5zX9/Yadg4/Pf02O6dP62M1rW7x6VoG/gEa72axqV/izm7/ws7SASsiKtHKRijf

Quando a versão mais recente do ssh tenta corresponder a sequência de tipo de chave ecdsa-sha2-nistp256 à sequência de tipo de chave ssh-rsa, ela falha, em vez de reconhecer que são dois tipos de chaves diferentes para a mesma máquina.

Eu considero isso um bug, mas não tenho ideia de onde o publiquei.

    
por 16.12.2015 / 02:34