it-swarm.com.ru

идентификатор удаленного хоста ssh изменился

Я переустановил свой сервер и получаю следующие сообщения: 

[[email protected] ~]$ ssh [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 RSA key sent by the remote Host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct Host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA Host key for pong has changed and you have requested strict checking.
Host key verification failed.

Я пробовал различные решения, которые я нашел в Интернете. Мой файл known_hosts (обычно в ~/.ssh/known_hosts) находится в /var/lib/sss/pubconf/known_hosts. Я пытался редактировать его, но он остается в одном состоянии. Я установил ipa-client и установил Fedora 19. Как мне разрешить это предупреждение?

Все ответы до сих пор работают, только если у вас не установлен Freeipa.

Правильный ответ для freeipa в комментариях ниже от Адрина здесь .

469
Filip Dobrovolný

Вот самое простое решение 

ssh-keygen -R <Host>

Например,

ssh-keygen -R 192.168.3.10

С ssh-keygen man page :

  • -R hostname Удаляет все ключи, принадлежащие имени хоста, из файла known_hosts. Эта опция полезна для удаления хешированных хостов (см. Опцию -H выше).
879
Kashif Nazar

использование

ssh-keygen -R hostname

Пример с IP-адресом/именем хоста:

ssh-keygen -R 168.9.9.2

Это обновит оскорбления вашего хоста от known_hosts

166
ravi ranjan

У меня была такая же ошибка после воссоздания образа Digital Ocean Ubuntu. Я использовал следующую команду с моим IP-адресом сервера вместо [IP_ADDRESS]

ssh-keygen -R [IP_ADDRESS]
102
Ben

Когда вы переустанавливаете сервер, его личность меняется, и вы начинаете получать это сообщение. Ssh не может узнать, изменили ли вы сервер, к которому он подключается, или сервер в середине был добавлен в вашу сеть, чтобы прослушивать все ваши сообщения - поэтому он обращает на это ваше внимание.

Просто удалите ключ из known_hosts, удалив соответствующую запись:

sed '4d' -i /var/lib/sss/pubconf/known_hosts

4d находится на счету Offending RSA ...known_hosts:4

33
mockinterface

Кувалдой нужно убрать всех известных Хозяев одним махом:

rm ~/.ssh/known_hosts

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

29
Andy Hayden

Проблема заключается в том, что ранее вы приняли SSH-соединение с удаленным компьютером, а цифровой отпечаток этого удаленного компьютера или хэш-ключ SHA256 изменились с момента вашего последнего подключения. Таким образом, когда вы снова пытаетесь использовать SSH или используете github для извлечения кода, который также использует SSH, вы получаете сообщение об ошибке. Зачем? Потому что вы используете тот же адрес удаленного компьютера, что и раньше, но удаленный компьютер отвечает другим отпечатком. Поэтому возможно, что кто-то подделывает компьютер, к которому вы ранее подключались. Это проблема безопасности. 

Если вы на 100% уверены, что удаленный компьютер не взломан, не взломан, не подделан и т.д., Все, что вам нужно сделать, - это удалить запись в файле known_hosts для удаленного компьютера. Это решит проблему, так как больше не будет несоответствия с идентификаторами отпечатков пальцев SHA256 при подключении.

На Mac вот что я сделал:

1) Найдите строку вывода, которая гласит RSA Host key for servername:port has changed and you have requested strict checking.. Вам понадобится и имя сервера, и, возможно, порт из этого вывода журнала.

2) Создайте резервную копию файла известных хостов SSH cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak

3) Найдите строку, где хранится старый отпечаток компьютера, и удалите его. Вы можете выполнить поиск конкретного оскорбительного отпечатка пальца удаленного компьютера, используя имя сервера и порт из шага # 1. nano /Users/yourmacusername/.ssh/known_hosts

4) CTRL-X, чтобы выйти и выбрать Y, чтобы сохранить изменения

Теперь введите ssh -p port servername, и вы получите исходный запрос, который вы сделали при первой попытке SSH к этому компьютеру. Затем вам будет предоставлена ​​возможность сохранить обновленный отпечаток SHA256 этого удаленного компьютера в ваш файл known_hosts. Если вы используете SSH через порт 22, то аргумент -p необязателен.

Любые проблемы, которые вы можете восстановить оригинальный файл known_hosts: cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts

22
anon58192932

Как уже говорили многие, используйте ssh-keygen, т.е.

ssh-keygen -R pong

Также вы можете временно отключить проверку ключей хоста:

ssh -oStrictHostKeyChecking=no [email protected]
12
Stephen Quan

Я использовал решение mockinterface, хотя sed -i не совсем работал Я решил его, удалив строку вручную с помощью vim:

Sudo vim /var/lib/sss/pubconf/known_hosts

Вы можете использовать любой другой текстовый редактор, который вам нужен, но, вероятно, вам нужно будет показать свои административные права

11
3nrique0

Работает для меня!

Ошибка: Отказавший ключ RSA в/var/lib/sss/pubconf/known_hosts: 4

Это означает, что у вас есть неправильный ключ RSA в строке №. 4

Решение 1 :

1. vi /var/lib/sss/pubconf/known_hosts

2. remove line no: 4.

3. Save and Exit, and Retry.

Решение 2:

ssh-keygen -R "you server hostname or ip"

ИЛИ ЖЕ

Решение 3:

sed -i '4d' /root/.ssh/known_hosts

Это удалит 4th строку /root/.ssh/known_hosts на месте (-i).

11
Sahil Gulati

Это потому, что настройки вашего удаленного компьютера изменились. Удалите свои текущие ключи для этого.

vim /root/.ssh/known_hosts 

Удалите строку IP-адреса, который вы подключаете.

7
miota85

Другие ответы здесь хороши и работают, во всяком случае, я решил проблему, удалив ~/.ssh/known_hosts. Это, безусловно, решает проблему, но, вероятно, это не лучший подход.

4
tjespe

Удалите эту запись из known_hosts, используя:

ssh-keygen -R *ip_address_or_hostname*

Это удалит проблемный IP-адрес или имя хоста из known_hosts file и попытается подключиться снова.

Из справочных страниц:

-R hostname
Удаляет все ключи, принадлежащие имени хоста, из файла known_hosts. Эта опция полезна для удаления хэшированных хостов (см. Параметр -H Выше).

4
Chaminda Bandara

В моем случае это произошло из-за того, что я ранее имел ssh-соединение с машиной с тем же ip (скажем, 192.152.51.10) и система рассматривала ключ RSA (хранящийся в /home/user_name/.ssh/known_hosts) предыдущий хост, который привел к несоответствию.

Чтобы решить эту проблему, вы должны удалить ранее сохраненный ключ RSA для ip 192.152.51.10 .

ssh-keygen -f "/home/user_name/.ssh/known_hosts" -R 192.152.51.10
4
Prateek Joshi

Для пользователей Mac вы можете использовать флаг -R команды ssh-keygen. Быстрый пример:

ssh-keygen -R THE_IP_ADDRESS

THE_IP_ADDRESS - это IP, на который вы пытаетесь войти. И тогда вы можете подключиться нормально.

3
Nick Rameau

Если вы пытаетесь подключиться к работающему Docker-контейнеру через порт 2222 с помощью команды, и вы получаете сообщение об ошибке

[email protected]~$ ssh [email protected] -p 2222

Затем, чтобы решить эту проблему, на вашем локальном компьютере (то есть хост-компьютер, а не контейнер) перейдите к cd ~/.ssh/ и откройте файл known_hosts в текстовом редакторе. Удалите строку, начинающуюся с [localhost]:2222, и сохраните файл. Теперь попробуйте снова SSH 

[email protected]~$ ssh [email protected]localhost -p 2222

Ошибка исчезнет, ​​но вы должны будете делать это каждый раз при перезапуске контейнера.

2
Mian Asbat Ahmad

Только проблема на стороне клиента (дубликат ключа для ip):

Решить варианты:

Для очистки одного IP (порт по умолчанию 22):

ssh-keygen -f -R 7.7.7.7

Для одного ip ( не по умолчанию port):

ssh-keygen -f -R 7.7.7.7:333

Быстро очистить все ips:

cd ~; rm .ssh/known_hosts

7.7.7.7 - ssh ваш сервер ip connect

333 - нестандартный порт

2
Fortran

Очень простое решение: отредактируйте /home/hostname /.ssh/known_hosts, удалите 4 строки и сохраните их. затем снова запустите ssh [email protected], вы увидите следующее сообщение: Are you sure you want to continue connecting (yes/no)? yes, просто напечатайте yes.

Это работает для меня.

Кстати: если у вас возникли проблемы, сначала прочтите подсказки, это поможет.

2
Bluce Liu

Иногда, если по какой-либо причине вам необходимо переустановить сервер, при подключении по ssh мы обнаружим, что ваш сервер сообщает, что идентификация изменилась . Если мы знаем, что это не атака , но это мы восстановили систему, мы можем удалить старую идентификацию из known_hosts, используя ssh-keygen:

ssh-keygen -R <Host/ip:hostname>
root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

При повторном подключении мы попросим вас подтвердить новый отпечаток:

ssh -l user <Host/ip:hostname>
The authenticity of Host '<Host/ip:hostname>' can't 
be established.
RSA key fingerprint is 3f:3d:a0:bb:59:24:35:6d:e5:a0:1a:3f:9c:86:81:90.
Are you sure you want to continue connecting (yes/no)? yes
1
BrennQuin

У меня была такая же ошибка на моем компьютере, и я очищаю файл authorized_keys и known_hosts, и после этого он работает нормально.

1
GoingMyWay

Мое решение:

  1. vi ~/.ssh/known_hosts
  2. удалите строку, содержащую ваш IP-адрес.

Это лучше, чем удалить все known_hosts

1
aircraft

У меня была эта проблема, и причина очень проста, у меня есть дубликат IP-адреса для входа в систему ssh, поэтому после изменения этой проблемы все решается.

1
Fan

Используйте эту команду:

truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts
1
Muktesh Kumar

Просто делать:

cd /home/user/.ssh/ -> здесь user будет вашим именем пользователя, например, /home/jon/

Затем 

gedit known_hosts & и удалите содержимое внутри него. 

Теперь ssh снова, это должно работать. 

0
ThePredator

Мое решение на UBUNTU (Linux):

1.Вы должны удалить содержимое из файла "known_hosts", который находится в "/home/YOUR_USERNAME/.ssh/known_hosts" 

2.Создайте новый ключ ssh, например «ssh-keygen -t rsa -C» [email protected] «-b 4096»

3. Скопируйте и вставьте новый ssh-ключ в ваш git-репозиторий (в моем случае это gitlab) SSH-ключей.

Меня устраивает !

0
Dionis Oros

РЕШЕНИЕ:

1 - удалите из "$ HOME/.ssh/known_hosts" строку, относящуюся к хосту, к которой невозможно подключиться.

2- выполните эту команду: ssh-keygen -R "IP_ADDRESSorHOSTNAME" (замените "IP_ADDRESSorHOSTNAME" на ваш IP-адрес назначения или имя хоста назначения)

3. Повторите попытку подключения через ssh (в случае сбоя проверьте разрешение в каталоге .ssh, оно должно быть 700). 

0
DarkSkieS