Не вдається очистити відомі_хости в macOS 10.13


1

Я перевстановив ОС мого віддаленого сервера, і тепер, коли я намагаюся ssh root@myserverIPзі своєї локальної машини, я отримую:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:xxxxxxxxxxx.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:3
ECDSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.

( xxxце просто приховати реальну інформацію)

Замість того, щоб змінити ключ, я вирішив повністю видалити весь вміст .ssh/known_hosts, сподіваючись запропонувати знову додати ключ. Але замість цього я все-таки отримую ту саму помилку.

Отже, я навіть намагався видалити одну клавішу вручну:

ssh-keygen -R xxx.xxx.xxx.xxx

І, звичайно, його там немає, оскільки known_hostsзараз порожньо:

Host xxx.xxx.xxx.xxx not found in /Users/xxx/.ssh/known_hosts

Однак я все одно отримую ту ж помилку знову і знову. Це дивовижно - звідки sshотримувати інформацію, якщо known_hostsвона порожня?

Звичайно, я перезапустив свій Mac, і я навіть промив кеш. Можливо ssh, використовується інший known_hosts? Але де це? Я спробував locateце, але не можу знайти жодного іншого known_hostsфайлу на диску.

Що я роблю неправильно? Як я можу це вирішити?

Відповіді:


2

У вас є більше одного known_hostsфайлу

З вашого опису ви видалили ключ зі свого known_hosts файлу:

Host xxx.xxx.xxx.xxx not found in /Users/xxx/.ssh/known_hosts

Де /Users/xxx/, імовірно, ваш домашній каталог. Однак оригінальне повідомлення про помилку скаржиться:

Offending ECDSA key in /var/root/.ssh/known_hosts:3

Отже, вийміть ключ /var/root/.ssh/known_hostsі повідомлення про помилку зникне.


Чому ssh-keygen -R xxx.xxx.xxx.xxxб тоді не працювати? Я не повинен мати доступ до/var/root/.ssh/known_hosts
alec_djinn

Однак я змінив дозвіл і змінив цей файл і зараз він працює. Дякую. Все ще спантеличено з приводу ssh-keygen -R xxx.xxx.xxx.xxxтого, що locateне вийшло/var/root/.ssh/known_hosts
alec_djinn

@alec_djinn Справедливі бали! locateПитання і як ssh-keygen -Rпрацює на MacOS може зробити для цікавих наступних питань. Я не знаю вгорі голови, чому вони працюють (або не працювали!) Так, як вони роблять - але мені, безумовно, буде цікаво дізнатися :)
bertieb

(Я міг би скласти здогадки для обох, але остаточні відповіді завжди вітаються!)
bertieb

@alec_djinn ssh-keygen -Rпрацює лише у файлі знаних поточних користувачів поточного користувача (якщо ви не вказали інший із -f). Я припускаю, що ви працюєте sshяк root (і тому він використовує /var/root/.ssh/known_hosts замість вашого файлу)? Жоден користувач, крім root, не має доступу до каталогу /var/root/.ssh.
Гордон Девіссон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.