Я использую ssh для входа на удаленный сервер, который я арендую несколько лет. На прошлой неделе я получил от них сообщение о том, что они обновили мою учетную запись и сервер. Теперь, когда я захожу в систему, я получаю это сообщение от ssh
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. 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.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.
Теперь я предполагаю, что это было вызвано обновлением моего сервера моим хостом. Поэтому я хочу снова доверять этому сайту. Но я не совсем понимаю, как это сделать.
Я заглянул в known_hosts и там есть все открытые ключи. Но я не могу сказать, что из этого исходит от старой версии этого конкретного сервера. Я также не знаю, как получить правильный ключ для хоста; в прошлый раз, когда я установил контакт, я думаю, что ssh только что подтвердил и автоматически сохранил его. Теперь там написано, что я запросил строгую проверку, но я понятия не имею, когда я это сделал или где сбросить.
Линия:
Offending key in /home/myaccount/.ssh/known_hosts:7
указывает, что старый ключ находится в строке 7 вашего файла known_hosts. Используйте свой любимый редактор, чтобы удалить строку 7. Это должно заставить ее исчезнуть.
Вы также можете использовать ssh-keygen -R для удаления записи:
# ssh-keygen -R hostname -f ~/.ssh/known_hosts
К вашему сведению, это не открытые ключи, а хешированное представление хостов.
Вы можете перечислить файл известных хостов с помощью:
$ ssh-keygen -lv -f ~/.ssh/known_hosts
Затем он отобразит ключ и представление ascii art:
2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA)
+--[ RSA 2048]----+
| |
| . |
| = |
|o * . |
|o= o S |
|+ . + |
|..o. o . |
|..++.o . . |
|E. *B . |
+-----------------+
Теоретически вы распечатываете это и храните в надежном месте. Когда происходит что-то подозрительное, у вас есть копия для справки.
Я собираюсь просто добавить, что перед тем, как последовать совету моих уважаемых коллег по проблемам сервера и стереть строку из вашего файла known_hosts, вам следует поговорить со службой поддержки на другом конце и убедиться, что они сделали что-то, что могло вызвать этот ключ изменение.
Вам нужно будет отредактировать файл /home/myaccount/.ssh/known_hosts и удалить запись, которая соответствует IP-адресу или имени хоста вашего старого сервера. После этого вы должны просто ssh на свой сервер, как обычно, и он предложит вам новый ключ и спросит, хотите ли вы его добавить. Просто скажите «да» и все! :) Он не должен спрашивать вас снова, если что-то не изменилось.
Надеюсь, это поможет.
EDIT: ваша запись known_hosts, скорее всего, будет выглядеть примерно так
[имя хоста или IP-адрес] [тип ключа, обычно ssh-rsa] [здесь ключ, то есть ASDFJAKj3klje35u9086095468kjflADf ...]