ssh host-identificatie op afstand is gewijzigd

Ik heb mijn server opnieuw geïnstalleerd en ik krijg deze berichten:

[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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.

Ik heb verschillende oplossingen geprobeerd die ik op internet heb gevonden. Mijn known_hosts-bestand (normaal gesproken in ~/.ssh/known_hosts) bevindt zich in /var/lib/sss/pubconf/known_hosts. Ik heb geprobeerd het te bewerken, maar het blijft in één staat. Ik heb ipa-clientgeïnstalleerd en heb Fedora 19. Hoe los ik deze waarschuwing op?

Alle antwoorden die tot nu toe zijn beantwoord, werken alleen als Freeipa niet is geïnstalleerd.

Het juiste antwoord voor freeipa in onderstaande opmerkingen van adrin is hier.


Antwoord 1, autoriteit 100%

Hier is de eenvoudigste oplossing

ssh-keygen -R <host>

Bijvoorbeeld

ssh-keygen -R 192.168.3.10

Van ssh-keygenman-pagina:

  • -R hostnameVerwijdert alle sleutels die behoren tot hostnaam vanuit een bekend_hosts-bestand. Deze optie is handig om hash-hosts te verwijderen (zie de bovenstaande optie).

Antwoord 2, Autoriteit 18%

Gebruik

ssh-keygen -R [hostname]

Voorbeeld met een IP-adres / hostnaam zou zijn:

ssh-keygen -R 168.9.9.2

Hiermee wordt de overtreding van uw host bijgewerkt van de bekende_hosts. U kunt ook het pad van de bekende_hosts met -f-vlag leveren.


Antwoord 3, Autoriteit 10%

Ik had dezelfde fout opgetreden nadat ik een Digital Ocean Ubuntu-afbeelding heeft gemaakt. Ik heb de volgende opdracht gebruikt met mijn server IP in plaats van [IP_ADDRESS]

ssh-keygen -R [IP_ADDRESS]

Antwoord 4, Autoriteit 4%

De Sledhammer is om elke bekende host in één klap te verwijderen:

rm ~/.ssh/known_hosts

Ik kom hier tegen als we kleine subnetten van kortlevende servers uit een jump-box gebruiken en vaak interne IP-adreshergebruik hebben van servers die dezelfde SSH-toets delen.


Antwoord 5, Autoriteit 4%

Wanneer u de server de identiteitswijzigingen opnieuw stelt, en u begint dit bericht te krijgen. SSH heeft geen manier om te weten of u de server hebt gewijzigd die het verbinding maakt met, of een server-in-the-MIDDEL is aan uw netwerk toegevoegd om te snuiven op al uw communicatie – dus het brengt dit aan uw aandacht.

Verwijder eenvoudig de sleutel van bekende_hosts door de relevante invoer te verwijderen:

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

De 4dstaat in rekening van Offending RSA ...known_hosts:4


Antwoord 6, Autoriteit 2%

Het probleem is dat u eerder een SSH-verbinding met een externe computer hebt geaccepteerd en dat de digitale vingerafdruk of SHA256-hashsleutel van die externe computer is gewijzigd sinds u voor het laatst verbinding heeft gemaakt. Dus wanneer je opnieuw SSH probeert of github gebruikt om code te trekken, die ook SSH gebruikt, krijg je een foutmelding. Waarom? Omdat u hetzelfde externe computeradres gebruikt als voorheen, maar de externe computer reageert met een andere vingerafdruk. Daarom is het mogelijk dat iemand de computer vervalst waarmee u eerder verbinding had gemaakt. Dit is een beveiligingsprobleem.

Als u er 100% zeker van bent dat de externe computer niet is gecompromitteerd, gehackt, vervalst, enz., hoeft u alleen maar de vermelding in uw bekende_hosts-bestand voor de externe computer te verwijderen. Dat lost het probleem op, aangezien er geen mismatch meer is met SHA256-vingerafdruk-ID’s bij het verbinden.

Op de Mac heb ik het volgende gedaan:

1) Zoek de uitvoerregel met de tekst RSA host key for servername:port has changed and you have requested strict checking.U hebt zowel de servernaam als de eventuele poort uit die loguitvoer nodig.

2) Maak een back-up van het SSH-bestand met bekende hosts cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak

3) Zoek de regel waar de oude vingerafdruk van de computer is opgeslagen en verwijder deze. U kunt zoeken naar de specifieke beledigende externe computervingerafdruk met behulp van de servernaam en poort uit stap 1. nano /Users/yourmacusername/.ssh/known_hosts

4) CTRL-X om te stoppen en kies Y om de wijzigingen op te slaan

Typ nu ssh -p port servernameen u zult de oorspronkelijke prompt ontvangen die u deed toen u voor het eerst probeerde te SSH naar die computer. U krijgt dan de mogelijkheid om de bijgewerkte SHA256-vingerafdruk van die externe computer op te slaan in uw bekende_hosts-bestand. Als u SSH via poort 22 gebruikt, is het argument -p niet nodig.

Voor eventuele problemen kunt u het oorspronkelijke bestand met bekende_hosts herstellen: cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts


Antwoord 7, autoriteit 2%

Zoals velen al hebben gezegd, gebruik ssh-keygen, d.w.z.

ssh-keygen -R pong

U kunt ook overwegen om de controle van de hostsleutel tijdelijk uit te schakelen:

ssh -oStrictHostKeyChecking=no root@pong

Antwoord 8

Werkt voor mij!

Fout:Overtredende RSA-sleutel in /var/lib/sss/pubconf/known_hosts:4

Dit geeft aan dat u een overtredende RSA-sleutel heeft op regelnr. 4

Oplossing 1:

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

2.remove line no: 4.

3.Save and Exit, and Retry.

Oplossing 2:

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

OF

Oplossing 3:

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

Hiermee wordt de 4thregel van /root/.ssh/known_hostsop zijn plaats verwijderd(-i).


Antwoord 9

Ik heb de oplossing van mockinterface gebruikt, hoewel de sed -i niet helemaal werkte
Ik heb het opgelost door de regel handmatig te verwijderen met vim:

sudo vim /var/lib/sss/pubconf/known_hosts

U kunt elke andere teksteditor gebruiken die u wilt, maar waarschijnlijk moet u uw beheerdersrechten tonen


Antwoord 10

Voor Mac-gebruikers kunt u de vlag -Rvan de opdracht ssh-keygengebruiken. Snel voorbeeld:

ssh-keygen -R THE_IP_ADDRESS

THE_IP_ADDRESSis het IP-adres waarnaar u probeert te ssh-en. En dan kun je prima verbinding maken.


Antwoord 11

De andere antwoorden hier zijn goed en werken, hoe dan ook, ik heb het probleem opgelost door ~/.ssh/known_hostste verwijderen. Dit lost het probleem zeker op, maar het is waarschijnlijk niet de beste aanpak.


Antwoord 12

Dit komt omdat de instellingen van uw externe computer zijn gewijzigd. Verwijder daarvoor je huidige sleutels.

vim /root/.ssh/known_hosts

Verwijder de regel van het IP-adres waarmee u verbinding maakt.


Antwoord 13

Bewerk /home/hostname /.ssh/known_hosts, verwijder de 4 regels en sla deze op.

Voer vervolgens ssh root@pongopnieuw uit, u ziet een bericht als dit:Are you sure you want to continue connecting (yes/no)? yes, print gewoon yes.

Opmerking: als je een probleem hebt, lees dan eerst de hints, dat zal helpen.


Antwoord 14

Hier is de eenvoudigste oplossing

Gebruik ssh-keygen om de ongeldige sleutel te verwijderen

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

Ik hoop dat het je helpt


Antwoord 15

In mijn geval gebeurde het omdat ik voorheen een ssh-verbinding had met een machine met hetzelfde ip(zeg 192.152.51.10) en het systeem de RSA-sleutel (opgeslagen in /home/user_name/. ssh/known_hosts) van de vorige host, wat resulteerde in een mismatch.

Om dit probleem op te lossen, moet u de eerder opgeslagen RSA-sleutel voor het IP-adres 192.152.51.10 verwijderen.

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

Antwoord 16

Eenvoudige one-liner-oplossing, getest op mac:

sed '/212.156.48.110/d' ~/.ssh/known_hosts > ~/.ssh/known_hosts

Verwijdert alleenhet doel-ssh-host-IP van bekende hosts.

waar 212.156.48.110 wordt vervangen door het IP-adres van de doelhost.

Oorzaak: dit gebeurde omdat het doel-IP al bekend was voor een andere machine vanwege port forwarding. Als u het doel-IP verwijdert voordat u verbinding maakt, wordt het probleem opgelost.


Antwoord 17

je ssh-sleutel geüpdatet, het krijgen van de bovenstaande melding is normaal.

Bewerk gewoon ~/.ssh/known_hostsen verwijder regel 4, zoals het bericht je wees

Offending RSA key in /Users/isaacalves/.ssh/known_hosts:4

of gebruik ssh-keygen om de ongeldige sleutel te verwijderen

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

Antwoord 18

Gebruik deze opdracht:

truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts

Antwoord 19

Als u probeert verbinding te maken met het uitvoeren van docker-container op poort 2222 met de opdracht en u krijgt de foutmelding

mian@tdowrick2~$ ssh pos@localhost -p 2222

Om dit probleem op te lossen, gaat u op uw lokale computer (d.w.z. hostmachine niet container) naar cd ~/.ssh/en opent u het bestand known_hostsmet de teksteditor. Verwijder de regel die begint met [localhost]:2222en sla het bestand op. Probeer nu opnieuw te ssh

mian@tdowrick2~$ ssh pos@localhost -p 2222

Fout zal verdwijnen, maar je moet dit elke keer doen als de container opnieuw wordt opgestart.


Antwoord 20

Mijn oplossing is:

  1. vi ~/.ssh/known_hosts
  2. verwijder de regel die uw gewenste verbonden ip bevat.

Dit is beter dan alle known_hosts

te verwijderen


Antwoord 21

Verwijder dat het item van bekende_hosts met:

ssh-keygen -R *ip_address_or_hostname*

Hiermee wordt het problematische IP-adres of de hostnaam uit het bestand known_hostsverwijderd en wordt opnieuw geprobeerd verbinding te maken.

Van de man-pagina’s:

-R hostname
Verwijdert alle sleutels die bij de hostnaam horen uit een bestand met bekende_hosts. Deze optie is handig om gehashte hosts te verwijderen (zie de -H optie
hierboven).


Antwoord 22

Doe gewoon:

cd /home/user/.ssh/-> hier is userje gebruikersnaam, d.w.z. /home/jon/bijvoorbeeld.

Dan

gedit known_hosts &en verwijder de inhoud erin.

Nu sshopnieuw, zou het moeten werken.


Antwoord 23

Ik had dit probleem, en de reden is heel simpel, ik heb een gedupliceerd IP-adres om in te loggen, dus na het wijzigen van dit probleem is alles opgelost.


Antwoord 24

Alleen probleem aan de clientzijde (dubbele sleutel voor ip):

Los varianten op:

Voor het wissen van één ip (standaardpoort 22):

ssh-keygen -f -R 7.7.7.7

Voor één ip(niet standaardpoort):

ssh-keygen -f -R 7.7.7.7:333

Snel alle ips wissen:

cd ~; rm .ssh/known_hosts

7.7.7.7– ssh je server ip connect

333– niet-standaard poort


Antwoord 25

Soms, als je om welke reden dan ook, een server opnieuw moet installeren, zullen we bij het verbinden via ssh zien dat je server zegt dat de identificatie is gewijzigd.
Als we weten dat het geen aanvalis, maar dat we het systeem hebben hersteld, kunnen we de oude identificatie van de bekende_hosts verwijderen met ssh-keygen:

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

Als we opnieuw verbinding maken, vragen we je om de nieuwe vingerafdruk te valideren:

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

Antwoord 26

Ik had dezelfde fout op mijn computer en ik wis het bestand known_hostsen daarna werkt het prima.


Antwoord 27

Ik gebruik Windows 10 PowerShell om verbinding te maken in ssh.
Mijn probleem zat in Windows C:\Users\youruser.ssh
Verwijder het bestand known_hosts en dat is alles.


Antwoord 28

OPLOSSING:

1- verwijder uit “$HOME/.ssh/known_hosts” de regel die verwijst naar de host waarmee geen verbinding kan worden gemaakt.

2- voer deze opdracht uit: ssh-keygen -R “IP_ADDRESSorHOSTNAME” (vervang “IP_ADDRESSorHOSTNAME” door uw bestemmings-ip of bestemmingshostnaam)

3- Probeer de ssh-verbinding opnieuw (als het mislukt, controleer dan de toestemming voor de .ssh-map, het moet 700 zijn)


Antwoord 29

Mijn oplossing op UBUNTU (linux):

1.U moet de inhoud verwijderen uit het bestand “bekende_hosts” dat zich in “/home/YOUR_USERNAME/.ssh/bekende_hosts” bevindt

2.Genereer een nieuwe ssh-sleutel zoals “ssh-keygen -t rsa -C “[email protected]” -b 4096″

3.Kopieer en plak je nieuwe ssh-sleutel in je git-repository (gitlab in mijn geval) SSH-sleutels.

Het werkt voor mij!


Antwoord 30

Wis eenvoudig de bekende_hosts die aanwezig zijn in /home/{gebruikersnaam}/.ssh/bekende_hosts

vi /home/{username}/.ssh/known_hosts 

verwijder elke regel binnen bekende hosts en sluit af, daarna kun je inloggen.

OF

voer deze opdracht uit

ssh-keygen -R "hostname/ip_address" 

Other episodes