Je možné zabránit následující zprávě o: (IDENTIFIKACE VZDÁLENÉHO HOSTU ZMĚNĚNO)
Při použití pouze této syntaxe připojení
ssh xxx.xxx.xxx.xxx
příklad varovné zprávy:
ssh 10.19.11.1 CentOS release 5.8 (Final) Kernel 2.6.18-308.el5 on an i686 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is dd:6f:32:8f:8f:8c:70:9c:95:f1:48:83:60:97:cc:ed. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:7 RSA host key for 10.19.11.1 has changed and you have requested strict checkin. Host key verification failed.
pokaždé, když dostanu tuto zprávu, vyčistím /root/.ssh/known_hosts
jako
cp /dev/null /root/.ssh/known_hosts
Byl jsem také přemýšlet o nastavení příkazu cp / dev / null /root/.ssh/known_hosts v crontabu,
takže každý den ve 24:00 vyčistí soubor known_hosts (toto řešení tento problém zmenší, ale nevyřeší) )
takže toto řešení není tak dobré řešení, protože uživatel může obdržet varovnou zprávu, přestože každý den vyčistíme soubor known_hosts
možná můžeme něco udělat na / etc / ssh / ssh_config, aby se zabránilo kontrole klíče hostitele SSH?
poznámka:
Nechci použít následující metodu provést kontrolu klíče hostitele SSH (protože používám odraz / tmel)
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
Trvám na tom, abych používal pouze tuto syntaxi jako
ssh xxx.xxx.xxx.xxx
pro připojení
Komentáře
- Jednoduše řečeno: don ' nedělej to. Přečetli jste si toto varování vůbec? Toto varování má svůj důvod. A má vás chránit před poškozením MitM útokem a dalšími špatnými věcmi.
Odpověď
Aktualizace: V dnešní době můžete používat certifikáty SSH podobné TLS certifikáty. Potom můžete přidat položku known_hosts
, která důvěřuje certifikátu spíše než jednotlivým klíčům, a tuto zprávu už nikdy nedostanete.
Všímejte si upozornění @ 0xC0000022L !
Pokud víte klíč hostitele se změnil , můžete tuto konkrétní položku odebrat ze souboru known_hosts
:
ssh-keygen -R xxx.xxx.xxx.xxx
Je to mnohem lepší než přepsat celý soubor hostitelů (což lze provést pouze > /root/.ssh/known_hosts
).
Pokud nechcete použít ssh
možnosti příkazového řádku, domnívám se, že jediným dalším způsobem, jak to udělat, by bylo upravit SSH kód a překompilovat ho. Které opravdu nechci to dělat!
Komentáře
- ale chci to udělat automaticky, když si na to uživatel stěžuje, já Nechcete to udělat ručně
- Nechcete ' to udělat ručně (odebrat g
known_hosts
záznamů) a nechcete ' to dělat automaticky (pomocíssh
možnosti). Jak to potom chcete udělat? - @ l0b0 Tím, že dáte možnost příkazového řádku potlačit funkci. V některých prostředích, jako jsou prostředí virtuálních strojů a další velmi dynamické konfigurace (zejména testovací prostředí), se tyto klíče hostitele často mění, a protože jsou v izolované síti, lze při kontrole získat jen malé zabezpečení. Pokaždé, když musíte udělat
ssh-keygen -R
, je to nepříjemné. Předpokládám, že by bylo možné napsat shell pro ssh, shell skript, který analyzuje cílovou adresu a před odebráním klíče před předáním možností ssh, ale zdá se to být přehnané.
Odpověď
krok 1: odstranění chybného klíče
ssh-keygen -R 192.168.1.1
krok 2: přidání nového klíče
ssh-keyscan 192.168.1.1 >> ~/.ssh/known_hosts
nebo podle vaší situace
> ~/.ssh/known_hosts ssh-keyscan 192.168.1.1 192.168.1.2 ... >> ~/.ssh/known_hosts
Komentáře
- -1 za poskytnutí střelné zbraně bez varování.
- @ l0b0 dost fér, vaše cti!
odpověď
Při připojování k jednorázovým virtuálním strojům nebo takovým klíčům byste raději neměly ukládat klíče.
Vytvořte ssh0
alias nebo funkce s následujícím obsahem:
alias ssh0="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR"
Tímto způsobem neznečistíte své ~/.known_hosts
soubor s odpadky, a protože používáte jiný příkaz, vznikl by psychologický hranice mezi „skutečným“ ssh a tím, který se používá k vybavení nějakého místního widgetu.
Další užitečný alias je
alias sshy="ssh -o CheckHostIP=no"
pro „připojuji se k zařízení, které často mění svou IP, jako např. domácí směrovač, kterému ISP přiřadí jinou IP při každém jeho napájení.
Komentáře
- Perfektní odpověď na to!