Назад | Перейти на главную страницу

Отпечаток хоста ECDSA изменяется, если хост уже известен

Я использую службу веб-хостинга, которая предлагает доступ как по FTP, так и по SSH, но для SSH они разрешают аутентификацию только с помощью ключей SSH. Я создал себе SSH-ключи, используя ssh-keygen, импортировал их в мою систему Ubuntu, используя ssh-add, и загрузил ключ в веб-панель управления моим хостингом. Мой ~/.ssh/config файл содержит это:

Host myhostname
Hostname ssh.myhostname.com
User myhostname
PubKeyAuthentication yes
IdentityFile /home/aaronfranke/.ssh/id_rsa

Имя хоста и имя пользователя такие же, но я заменил имя на «myhostname» для всех фрагментов конфигурации / терминала. При первом подключении к терминалу я получаю отказ в разрешении (публичный ключ):

$ ssh myhostname
The authenticity of host 'ssh.myhostname.com (23.217.138.110)' can't be established.
ECDSA key fingerprint is SHA256:6MJJtqKhTdHXF2yzH/0UqGN2o4RZ2PDEp2ttdA/IJR8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ssh.myhostname.com' (ECDSA) to the list of known hosts.
myhostname@ssh.myhostname.com: Permission denied (publickey).

Сразу после этого, если я попытаюсь повторно подключиться, я получаю сообщение об изменении ключа хоста ECDSA:

$ ssh myhostname
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for ssh.myhostname.com has changed,
and the key for the corresponding IP address 23.202.231.169
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/aaronfranke/.ssh/known_hosts:1
  remove with:
  ssh-keygen -f "/home/aaronfranke/.ssh/known_hosts" -R "23.202.231.169"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:HnzBy7BAfkMCT4uIcdLrpoWiOrnhHhN8k7XMbbB2Epk.
Please contact your system administrator.
Add correct host key in /home/aaronfranke/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/aaronfranke/.ssh/known_hosts:3
  remove with:
  ssh-keygen -f "/home/aaronfranke/.ssh/known_hosts" -R "ssh.myhostname.com"
ECDSA host key for ssh.myhostname.com has changed and you have requested strict checking.
Host key verification failed.

Я могу сделать, как было предложено, и удалить ключ из списка известных хостов ...

$ ssh-keygen -f "/home/aaronfranke/.ssh/known_hosts" -R "ssh.myhostname.com"
# Host ssh.myhostname.com found: line 3
/home/aaronfranke/.ssh/known_hosts updated.
Original contents retained as /home/aaronfranke/.ssh/known_hosts.old

... но при повторном подключении я получаю то же сообщение, что и при первом подключении, а затем снова то же сообщение об изменении ключа хоста. То же самое происходит, если я бегу rm ~/.ssh/known_hosts.

Странно то, что эти сообщения точный тем же. Каждый раз, если ведущего нет в моем known_hosts файл, отпечаток сервера SHA256:6MJJtqKhTdHXF2yzH/0UqGN2o4RZ2PDEp2ttdA/IJR8, и каждый раз, когда хост известен, отпечаток сервера SHA256:HnzBy7BAfkMCT4uIcdLrpoWiOrnhHhN8k7XMbbB2Epk

Почему отпечаток пальца будет меняться в зависимости от того, известен хост или нет? Как я могу запретить изменение отпечатка пальца? Что-то не так с моим клиентом или сервером?

Есть ли способ вручную вставить отпечаток хоста, полученный при второй попытке подключения, в мой known_hosts файл? Можно ли авторизовать оба отпечатка пальца?