it-swarm.dev

Chyba připojení SSH s chybou „Ověření klíče hostitele se nezdařilo ...“

Mohu se připojit k jinému stroji Ubuntu ve své LAN prostřednictvím SSH. Na obou tehdy nainstalovaných počítačích jsem nainstaloval openssh-server , ale z jiného počítače Ubuntu se nemůžu připojit ke svému počítači přes SSH a dostal jsem tuto chybu:

Ověření klíče hostitele se nezdařilo ...

189
Navid

„Ověření klíče hostitele se nezdařilo“ znamená, že byl změněn klíč Host vzdáleného hostitele.

SSH ukládá klíče hostitele vzdálených hostitelů do ~/.ssh/known_hosts. Tento textový soubor můžete upravit ručně a odstranit starý klíč (v chybové zprávě můžete vidět číslo řádku), nebo použít

ssh-keygen -R hostname

Z man stránka :

-R název hostitele
Odebere všechny klíče patřící k názvu hostitele ze souboru known_hosts. Tato volba je užitečná pro vymazání hash hostitelů.

(což jsem se naučil z odpovědi na Je možné odebrat konkrétní hostitelský klíč ze souboru SSH známý_hosts? ).

225
elmicha

Pokud běžíte v určitých situacích vzdáleného/skriptovacího prostředí, ve kterých nemáte interaktivní přístup k hostiteli klíče Prompt-to-add-hostkey, obejít to takto:

$ ssh -o StrictHostKeyChecking=no [email protected] uptime

Upozornění: Do seznamu známých hostitelů trvale přidáno „něco.example.com, 10.11.12.13“ (RSA).

138
MarkHu

Také někdy nastane situace, kdy pracujete na sériové konzoli a poté kontrolujete výše uvedený příkaz v podrobném režimu -v vám ukáže /dev/tty neexistuje, zatímco ano.

ssh -v [email protected]

Ve výše uvedeném případě stačí odebrat /dev/tty a vytvořte symbolický odkaz /dev/ttyS0 to /dev/tty.

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

Jako alternativu přidejte id_rsa.pub do vzdáleného umístění, takže heslo není vyzváno a získáte přístup k přihlášení.

10
Peeyush

V mém případě to bylo způsobeno problémem udev - nebylo /dev/tty uzel zařízení. Řešení pro mě bylo jen:

Sudo mknod -m 666 /dev/tty c 5 0
8
Mark

Na terminálu:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem [email protected] uptime

Zobrazí se následující zpráva nebo podobná zpráva:

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

Poté se připojte k EC2 jako obvykle:

ssh -i YourPublickey.pem [email protected]
6
Vitor Abella

No, jednoduše proto, že druhý ubuntu vyžaduje připojení klíčem a ne heslem.

Navrhuji, abyste na svém počítači použili Sudo dpkg-reconfigure openssh-server A pak by to mělo fungovat správně. Obnoví konfiguraci pro openssh a měla by se vrátit k výchozímu ověření hesla.

Druhou možností je, že ve vašem PC již existuje klíč pro vaše další ubuntu a že se změnil, takže už nebyl rozpoznán. V tomto případě budete muset upravit soubor .ssh/authorized_keys, Abyste odstranili problematický řádek identifikující vaše ubuntu.

3
MP0

Toto je staré vlákno a právě jsem narazil na tuto odpověď, přidám jen to, co jsem udělal, abych to vyřešil.

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

Jen jsem se podíval na chybovou zprávu, která na mě vyvolala, a řekl, aby spustil tento příkaz, aby byl odstraněn ze seznamu hostitelů. Poté jsem udělal následující:

ssh-copy-id HOSTNAME

Poté jsem se řídil těmito pokyny, dokud jsem nebyl schopen zasáhnout na server.

3
Hatem Jaber

To znamená, že váš vzdálený hostitelský klíč byl změněn (může to být změna hesla hostitele),

Váš terminál navrhl provést tento příkaz jako uživatel root

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

Musíte odstranit toto jméno hostitele ze seznamu hostitelů na vašem počítači/serveru. Zkopírujte navrhovaný příkaz a spusťte ho jako uživatel root.

$ 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 [email protected] -p 4231                              // Try again

Doufám, že to funguje.

2
Jay Patel

Možná budete muset zadat „ano“, když ssh potvrdí, že chcete pokračovat v připojování.

Jako níže.

The authenticity of Host 'xxx' can't be established.
ECDSA key fingerprint is yyy.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

Poté zadejte své heslo.

Věnujte prosím pozornost „Opravdu chcete pokračovat v připojení (ano/ne)? ano“. Musíte zadat ano, ne zadat.

2
JChen___

Klíč byste měli změnit takto: Z dané chyby zjistěte, který hostitelský klíč se změnil, například: Porušení klíče ECDSA v /Users/user-name/.ssh/known_hosts:5 řekl, že pátý klíč byl změněn, postupujte takto:

sed -i '5d' ~/.ssh/known_hosts

Upozornění: Musíte být root nebo mít oprávnění pro Sudo.

1
Amir.A.G

Stačí udělat "Sudo vi /var/root/.ssh/known_hosts" a odstranit řádek, který obsahuje klíč pro hostitele, ke kterému se pokoušíte připojit a znovu se připojit.

Nevím o vaší konkrétní situaci, ale s největší pravděpodobností tato chyba přišla se zprávou, jako je tato:

my_mac:~ oivanche$ Sudo 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 ECDSA key sent by the remote Host is
SHA256:sx1Z4xyGY9venBP6dIHAoBj0VhDOo7TUVCE2xWXpzQk.
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:74
ECDSA Host key for 192.168.0.45 has changed and you have requested strict checking.
Host key verification failed.

Pokud si přečtete protokol pečlivěji, uvidíte, že klíč, který jste dostali od hostitele, je v konfliktu s klíčem, který již máte - v tomto případě je to na řádku 74 souboru známých_hosts (Offending ECDSA key in/var/root/.ssh/known_hosts: 74). Odstraňte řádek ze známých_hostitelů, uložte změny a znovu se připojte.

1

Kromě přísného zákazu kontroly klíče hostitele se můžete připojit také zadáním:

ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <[email protected]_machine_ip_or_domain_name>
1
Farshid

musíte vložit klíč rsa cílového hostitele do zdrojového hostitele /home/user/.ssh/known_hosts spuštěním na cíl

ssh-keyscan -t rsa @targethost
1
rob brennan

Moje řešení pochází z tohoto příspěvku v blogu: Vyjednávání algoritmů selhalo pro klienta SSH Secure Shell

Soubor musíte upravit následovně:

Sudo nano /etc/ssh/sshd_config

A pak přidejte následující:

# Ciphers
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
KexAlgorithms diffie-hellman-group1-sha1

V podstatě jste vyzkoušeli různá řešení, dokud nenajdete řešení, které váš problém vyřeší. Pokud výše uvedená řešení nefungují, zkuste toto. Pokud tento nefunguje, zkuste ostatní.

0
Frank Puk

Stačí zakázat přísnou kontrolu klíče hostitele ve vašem ~/.ssh/config:

Host *
StrictHostKeyChecking no
0
Timo

Pokud přidáte -v možnost ssh (možná i vícekrát) vytiskne všechny druhy věcí, které mohou pomoci při identifikaci problému. V mém případě si stěžoval na /dev/tty oprávnění a chmod 666 /dev/tty opraven problém.

0
Wolf Paul

pico ~/.ssh/known_hosts a smažte všechny řádky, po opětovném připojení a dostanete nový klíč.

0
H0nsu