Идентификация удаленного хоста 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-клиент и имею Fedora 19. Как мне разрешить это предупреждение?
Все ответы, ответы до сих пор работают, только если у вас нет Freeipa.
Правильный ответ для freeipa в комментариях ниже от adrin здесь.
Ответы
Ответ 1
Вот простейшее решение
ssh-keygen -R <host>
Например,
ssh-keygen -R 192.168.3.10
На странице man ssh-keygen
:
-
-R hostname
Удаляет все ключи, принадлежащие имени хоста, из файла known_hosts. Этот параметр полезен для удаления хешированных хостов (см. Выше -H).
Ответ 2
Используйте
ssh-keygen -R [hostname]
Пример с IP-адресом/именем хоста:
ssh-keygen -R 168.9.9.2
Это обновит оскорбления вашего хоста от known_hosts. Вы также можете указать путь к известному_хосту с флагом -f.
Ответ 3
У меня была такая же ошибка, когда я воссоздал изображение Digital Ocean Ubuntu. Я использовал следующую команду с IP-адресом сервера вместо [IP_ADDRESS]
ssh-keygen -R [IP_ADDRESS]
Ответ 4
При переустановке сервера изменится его идентификация, и вы начнете получать это сообщение. Ssh не знает, изменили ли вы сервер, к которому он подключился, или сервер в середине был добавлен в вашу сеть, чтобы обнюхать все ваши сообщения, поэтому он доводит это до вашего сведения.
Просто удалите ключ из known_hosts, удалив соответствующую запись:
sed '4d' -i /var/lib/sss/pubconf/known_hosts
4d
находится на счету нарушения Offending RSA...known_hosts:4
Ответ 5
Кувалдой следует удалять каждого известного хозяина одним махом:
rm ~/.ssh/known_hosts
Я сталкиваюсь с этим, поскольку мы используем небольшие подсети короткоживущих серверов из сканера и часто используем повторное использование внутреннего IP-адреса серверов, которые используют один и тот же ключ ssh.
Ответ 6
Проблема в том, что вы ранее принимали 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 -p port servername
к SSH на этот компьютер. После этого вам будет предоставлена возможность сохранить удаленный компьютер, обновленный отпечаток SHA256, до вашего файла known_hosts. Если вы используете SSH через порт 22, то аргумент -p не нужен.
Любые проблемы, которые вы можете восстановить исходный файл known_hosts: cp/Users/yourmacusername/.ssh/known_hosts.bak/Users/yourmacusername/.ssh/known_hosts
Ответ 7
Как уже говорилось, используйте ssh-keygen
, т.е.
ssh-keygen -R pong
Кроме того, вам может потребоваться временно отключить проверку ключа хоста:
ssh -oStrictHostKeyChecking=no [email protected]
Ответ 8
Работает на меня!
Ошибка: нарушение ключа 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
).
Ответ 9
Я использовал решение mockinterface, хотя sed -i не совсем работал, я решил его, удалив линию вручную с помощью vim:
sudo vim /var/lib/sss/pubconf/known_hosts
Вы можете использовать любой другой текстовый редактор, который вам нужен, но, вероятно, вам нужно будет указать свои административные привилегии
Ответ 10
Это связано с изменением настроек удаленного компьютера. Удалите для этого текущие ключи.
vim/root/.ssh/known_hosts
Удалите строку подключаемого IP-адреса.
Ответ 11
Для пользователей Mac вы можете использовать флаг -R
команды ssh-keygen
. Быстрый пример:
ssh-keygen -R THE_IP_ADDRESS
THE_IP_ADDRESS
- это IP-адрес, на который вы пытаетесь войти. И тогда вы можете подключиться нормально.
Ответ 12
Другие ответы здесь хорошие и работают, во всяком случае, я решил проблему, удалив ~/.ssh/known_hosts
. Это, безусловно, решает проблему, но, вероятно, это не самый лучший подход.
Ответ 13
В моем случае это произошло из-за того, что ранее у меня было соединение 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
Ответ 14
Используйте эту команду:
truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts
Ответ 15
Удалите эту запись из known_hosts, используя:
ssh-keygen -R *ip_address_or_hostname*
Это приведет к удалению проблемного IP-адреса или имени хоста из файла known_hosts и повторите попытку подключения.
С man-страниц:
-R hostname
Удаляет все ключи, принадлежащие имени хоста, из файла known_hosts. Этот параметр полезен для удаления хешированных хостов (см. Выше -H).
Ответ 16
Отредактируйте /home/hostname/.ssh/known_hosts
, удалите 4 строки и сохраните их.
Затем снова запустите ssh [email protected]
, вы увидите следующее сообщение: Are you sure you want to continue connecting (yes/no)? yes
Are you sure you want to continue connecting (yes/no)? yes
, просто распечатай yes
Примечание: если у вас возникли проблемы, сначала прочтите подсказки, это поможет.
Ответ 17
Если вы пытаетесь подключиться к работающему Docker-контейнеру через порт 2222 с помощью команды, и вы получаете сообщение об ошибке
[email protected]~$ ssh [email protected] -p 2222
Затем, чтобы решить эту проблему, на вашем локальном компьютере (т.е. на хост-машине, а не на контейнере) перейдите в cd ~/.ssh/
и откройте файл known_hosts
текстовом редакторе. Удалите строку, начинающуюся с [localhost]:2222
и сохраните файл. Теперь попробуйте снова SSH
[email protected]~$ ssh [email protected] -p 2222
Ошибка исчезнет, но вы должны будете делать это каждый раз при перезапуске контейнера.
Ответ 18
Только проблема на стороне клиента (дублирующий ключ для ip):
Решите варианты:
Для очистки одного ip (порт по умолчанию 22):
ssh-keygen -f -R 7.7.7.7
Для одного ip (не умолчанию порт):
ssh-keygen -f -R 7.7.7.7:333
Быстрая очистка всех ips:
cd ~; rm .ssh/known_hosts
7.7.7.7 - ssh ваш сервер ip connect
333 - нестандартный порт
Ответ 19
Иногда, если по какой-либо причине вам необходимо переустановить сервер, при подключении 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
Ответ 20
Просто делать:
cd/home/user/.ssh/
→ здесь user
будет вашим именем пользователя, например, /home/jon/
.
затем
gedit known_hosts &
и удалите содержимое внутри него.
Теперь опять ssh
, должно работать.
Ответ 21
У меня была эта проблема, и причина очень проста: у меня есть дублированный IP-адрес для входа в ssh, поэтому после изменения этой проблемы все будет решено.
Ответ 22
У меня была такая же ошибка на моей машине, и я known_hosts
файл authorized_keys
и known_hosts
, и после этого он работает нормально.
Ответ 23
Мое решение:
-
vi ~/.ssh/known_hosts
- удалите строку, содержащую ваш подключенный ip.
Это лучше, чем удаление всех known_hosts
Ответ 24
РЕШЕНИЕ:
1- удалите из "$ HOME/.ssh/known_hosts" строку, относящуюся к хосту, к которому невозможно подключиться.
2- выполните эту команду: ssh-keygen -R "IP_ADDRESSorHOSTNAME" (замените "IP_ADDRESSorHOSTNAME" на ваш IP-адрес назначения или имя хоста назначения)
3- Повторите попытку ssh (если это не удается, проверьте разрешение на каталог.ssh, оно должно быть 700)
Ответ 25
Мое решение на 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-ключей.
Меня устраивает !