3

Поместите это здесь в попытке помочь другим, кто может столкнуться с этой неясной проблемой.

Я недавно обновил OSX с Mavericks до El Capitan. Затем я попытался войти в систему, в которую ранее входил, и ssh выдал эту ошибку:

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

Я посмотрел в моем известном файле hosts и увидел открытый ключ:

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

Затем я перешел на другую машину и проверил, что ключ, указанный выше, соответствует ключу known_hosts другой машины. Затем я подключился с этой другой машины к real.hostname.com без каких-либо ошибок или предупреждений.

Почему это случилось?

1 ответ1

3

Ключевым моментом здесь является обновление от Маверикс до Эль-Капитан. Оказывается, что клиент ssh был обновлен в El Capitan, поэтому, когда он пытается подключиться к серверу ssh, он теперь использует другой тип ключа вместо «ssh-rsa».

В этом случае ssh пытается использовать «ecdsa-sha2-nistp256». В более новой системе, если вы запустите «ssh-keyscan» в домене, она выдаст как тип ключа ssh-rsa, так и 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

Когда более новая версия ssh пытается сопоставить строку типа ключа ecdsa-sha2-nistp256 со строкой типа ключа ssh-rsa, происходит сбой, вместо того, чтобы признать, что это два разных типа ключа для одной и той же машины.

Я считаю это ошибкой, но понятия не имею, где я ее опубликую.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .