GNU/Linux >> Znalost Linux >  >> Linux

Základy správce systému Linux:Odstraňování problémů se selháním známých_hostitelů

SSH se snadno používá a je obecně bezproblémový. Ale ve vašem domovském adresáři je tento malý soubor, který se může stát vzácným bodem bolesti pro tento všudypřítomný protokol a nástroj. Útočnou entitou je ~/.ssh/known_hosts soubor. Pokud jste o tom nevěděli, měli byste se nyní seznámit. Tento soubor se objeví v určité fázi vaší kariéry.

Pokud jste někdy viděli následující zprávu, můžete se buď vyděsit, že se vás někdo pokouší hacknout, nebo si můžete uvědomit, že DHCP nebo nějaká jiná anomálie na vás udělala laciný špinavý čin:

$ ssh 192.168.1.84

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1k.
Please contact your system administrator.
Add correct host key in /Users/khess/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/khess/.ssh/known_hosts:4
ECDSA host key for 192.168.1.84 has changed and you have requested strict checking.
Host key verification failed.

Zde se stalo, že jste se pokusili připojit k systému, který již nemá IP adresu 192.168.1.84. Tuto IP adresu má jiný systém a SSH si stěžuje, že můžete být napadeni. Realita je často mnohem méně vzrušující. Vaši known_hosts soubor se nemusí synchronizovat se skutečnou realitou hostitele.

Tuto hru na hudební židle s IP adresou může způsobit několik věcí. Jeden ze systémů mohl být mimo provoz po delší dobu, a když vypršel pronájem jiného systému, získal další dostupnou IP adresu. Událost opravy a následné restartování způsobilo, že některé z vašich systémů získaly různé IP adresy. Systém mohl být přeinstalován a vygenerována nová identita, nebo možná někdo zmoudřel a přidělil vašim serverovým systémům statické IP adresy. (Domnívám se, že všechny servery by měly mít statické IP adresy. Totéž platí pro všechny podpůrné komponenty, jako jsou směrovače, přepínače, přístupové body, zařízení IoT, kamery, systémy konferenčních místností a dokonce i tiskárny. Pouze zařízení koncových uživatelů by měla mít pochybné privilegium získávání náhodných IP adres. Pro tento silný názor mám své důvody, o které se podělím později v jiném článku.)

Bez ohledu na to, jak se to stalo, systém, ke kterému jste se chtěli připojit, má novou IP adresu. Takový, který je také znám vašemu systému, ale s jiným otiskem prstu.

Výše uvedený known_hosts file je jednoduchý textový soubor, který se nachází ve skrytém adresáři (.ssh ) ve vašem domovském adresáři. Chcete-li zobrazit jeho obsah, zadejte následující příkaz:

$ cat .ssh/known_hosts

192.168.1.97 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMJWpXf8Ou/XJ1Q5YcIS5Me4GgN1F7AYHbvIPayfGqwd90kvhQygrPCYEqVdw44lEOIZe+DEKP4F6Otdt38yf68=

192.168.1.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJRNTZm8M9IYYN3uJL/yCPv4EJRMDZkkcnt1CY8L6OR84wstYdhqtNqV0v/LQiz/AoRbHKxPTdjXfIOrc1vYDHc=

ken,192.168.1.69 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB53lh2RyFiMfJFKBkLa643lS4GGILG6oVGq33KyBSgaDU2ZHryYak1FU1HcPa6Xb/xYqEUugv9cOXFRwajbrmg=

192.168.1.84 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMGjMsJPX4bfdEnVy59Uf2VhH1oAt7Zemd5bfSoSGxX69HBcjkekO/LkEZUlhVplBlHFqJBqs2gWYp3zVDCTwr4=

192.168.1.64 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIkK9WylcZcgjT7gUz9DMLehUBApION1CLiBVc3Pa/YfAbIDUlIWta12zL5B12RmBXgoYvntdW5rcowPiqjL0/o=

Snadným řešením tohoto problému je odstranění known_hosts a umožní generování nových klíčů pro každého hostitele, ke kterému se připojujete. Pro tuto ukázku odebírám 192.168.1.84 záznam z known_hosts a poté se připojte k novému hostiteli na této adrese, takže můžete vidět srovnání toho, co se v procesu děje. Nejprve odstraňte known_hosts záznam pomocí ssh-keygen příkaz:

$ ssh-keygen -R 192.168.1.84 -f .ssh/known_hosts

 Host 192.168.1.84 found: line 4
.ssh/known_hosts updated.
Original contents retained as .ssh/known_hosts.old

Původní záznam je uložen do .ssh/known_hosts.old pro případ, že to bude v budoucnu potřeba.

Po odstranění 192.168.1.84 záznam z  known_hosts soubor, pokusil jsem se znovu připojit k hostiteli 192.168.1.84 :

$ ssh 192.168.1.84
The authenticity of host '192.168.1.84 (192.168.1.84)' can't be established.
ECDSA key fingerprint is SHA256:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1k.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.1.84' (ECDSA) to the list of known hosts.

Můžete vidět, že klíč, který jsem nyní přidal, se shoduje s klíčem uvedeným v chybě na začátku článku. Chcete-li ověřit klíč hostitele, zadejte na vzdáleném hostiteli následující příkaz:

$ ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1k no comment (ECDSA)

Zabalení

Pokud nepoužíváte statické IP adresy a vaše systémy se nikdy nezmění, budete mít tento problém v určité fázi své kariéry. Stává se mi to neustále, protože vytvářím a ničím virtuální stroje několikrát za měsíc. Ve skutečnosti se to stává tak často, že už bych měl mít skript, který odstraní known_hosts soubor na začátku každého měsíce.

V ideálním případě byste nikdy nemuseli odstraňovat záznam z known_hosts soubor (nebo celý soubor). Ale pokud musíte, právě jste se naučili, jak to udělat.

Takové věci:known_hosts , ssh-keygen

[Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si jej nyní zdarma.]


Linux
  1. Odstraňování problémů s hardwarem v Linuxu

  2. Mých 5 oblíbených nástrojů pro správu systému Linux

  3. Odstraňování problémů se systémem Linux 101:Výkon systému

  1. Moje sada pro přežití Linux sysadmin

  2. 5 Příkazy pro odstraňování problémů se sítí Linux

  3. Linux Lab:SysAdmin 101

  1. Odstraňování problémů s pomalým WiFi v systému Linux

  2. Základy oprávnění k souborům Linux

  3. Linux sysadmin základy:Správa uživatelských účtů s UID a GID