Vraag SSH-verbindingsprobleem met fout "Hostsleutelverificatie mislukt ..."
Ik kan via SSH verbinding maken met een andere Ubuntu-machine in mijn LAN. Op beide pc's die ik heb geïnstalleerd openssh-server
maar van een andere Ubuntu-computer kan ik geen verbinding maken met mijn pc via SSH en kreeg ik de volgende foutmelding:
Hostsleutelverificatie mislukt ...
139
2018-05-28 11:36
oorsprong
antwoorden:
"Verificatie van de hostsleutel mislukt" betekent dat de gastheer sleutel van de externe host is gewijzigd.
SSH slaat de hostsleutels van de externe hosts op ~/.ssh/known_hosts
. U kunt dat tekstbestand handmatig bewerken en de oude sleutel verwijderen (u kunt het regelnummer in het foutbericht zien) of gebruiken
ssh-keygen -R hostname
(die ik heb geleerd van het antwoord op
Is het mogelijk om een bepaalde host-sleutel te verwijderen uit SSH's known_hosts-bestand?).
164
2018-05-28 13:19
Als u werkt in bepaalde externe / scripting-situaties waarbij u geen interactieve toegang tot de prompt-to-add-host-sleutel hebt, kunt u er als volgt omheen werken:
$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime
Waarschuwing: permanent 'something.example.com, 10.11.12.13' (RSA) toegevoegd aan de lijst met bekende hosts.
104
2017-07-24 00:47
Soms is er ook een situatie wanneer u aan een seriële console werkt en vervolgens boven het commando in de uitgebreide modus controleert -v
Zal je het laten zien /dev/tty
bestaat niet, terwijl het wel werkt.
ssh -v user@hostname
In het eerste geval gewoon verwijderen /dev/tty
en maak een symlink van /dev/ttyS0
naar /dev/tty
.
rm /dev/tty
ln -s /dev/ttyS0 /dev/tty
Voeg als alternatief toe id_rsa.pub
naar de externe locatie, dus er wordt geen wachtwoord gevraagd en u krijgt toegang tot inloggen.
10
2018-05-27 13:01
In mijn geval werd dit veroorzaakt door een udev-probleem - er was geen /dev/tty
apparaatknooppunt. De oplossing voor mij was gewoon:
sudo mknod -m 666 /dev/tty c 5 0
8
2017-07-25 20:28
Nou, simpelweg omdat de tweede ubuntu verbinding per sleutel en geen wachtwoord vereist.
Ik raad aan om te gebruiken sudo dpkg-reconfigure openssh-server
op uw pc, en dan zou het goed moeten werken. Het reset de configuratie voor openssh en moet terugkeren naar een standaard wachtwoordverificatie.
De tweede mogelijkheid is dat er al een sleutel voor je andere ubuntu op je pc staat en dat deze dus is veranderd en niet meer wordt herkend. In dit geval moet u het bestand bewerken .ssh/authorized_keys
om de problematische lijn te verwijderen die uw ubuntu identificeert.
3
2018-05-28 11:39
Dit is een oude draad en ik kwam dit antwoord net tegen, ik zal gewoon toevoegen wat ik heb gedaan om dit op te lossen.
ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME
Ik heb zojuist naar de foutmelding gekeken die hij naar me gooide en er stond op dat commando uit te voeren om het uit de lijst met hosts te verwijderen. Daarna deed ik het volgende:
ssh-copy-id HOSTNAME
Daarna volgde ik de prompts van daar totdat ik in staat was om de server in te sshoppen.
3
2018-04-15 16:09
Op terminal:
ssh -o StrictHostKeyChecking=No -i YourPublicKey.pem user@example.com uptime
Het volgende bericht, of iets vergelijkbaars, zal verschijnen:
Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts.
00:47:37 up 3 min, 0 users, load average: 0.00, 0.00, 0.00
Maak dan zoals gewoonlijk verbinding met uw EC2:
ssh -i YourPublickey.pem user@example.com
3
2018-03-27 00:50
Het betekent dat de externe hostsleutel is gewijzigd (mogelijk is het wijzigen van het hostwachtwoord),
Uw terminal stelde voor om deze opdracht als rootgebruiker uit te voeren
$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231
Je moet die hostnaam verwijderen van de hosts-lijst op je pc / server. Kopieer de voorgestelde opdracht en voer deze uit als root-gebruiker.
$ sudo su // Login as a root user
$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231 // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old
$ exit // Exist from root user
$ sudo ssh root@www.website.net -p 4231 // Try again
Ik hoop dat dit werkt.
2
2017-08-14 04:59
Je zou je sleutel op deze manier moeten veranderen:
Zoek op basis van uw gegeven fout voor welke host-sleutel is veranderd
voorbeeld: beledigende ECDSA-sleutel in /Users/user-name/.ssh/known_hosts:5
zei 5de sleutel veranderd, dus doe dit:
sed -i '5d' ~/.ssh/known_hosts
Let op: je moet root zijn of een voorrecht hebben voor sudo.
1
2018-03-13 15:22
je moet de rsa-sleutel van de doelhost in de bronhost plaatsen /home/user/.ssh/known_hosts
door dit op het doel te richten
ssh-keyscan -t rsa @targethost
1
2018-04-06 15:42