Řešení 1:
Můžete použít ssh -o StrictHostKeyChecking=no
pro vypnutí kontroly known_hosts
na chvíli. Ale nedoporučoval bych to. Měli byste opravdu zkontrolovat, proč se hostitelský klíč změnil.
Další možností je přidat konkrétní položku do ~/.ssh/config
pro dotyčného hostitele. Tento přístup může být platný, pokud máte určitého hostitele, který generuje nové klíče hostitele pokaždé, když se restartuje, a restartuje se z oprávněného důvodu několikrát denně.
Host <your problematic host>
StrictHostKeyChecking no
Řešení 2:
Chcete-li zcela ignorovat soubor známých hostitelů v prostředí POSIX, nastavte GlobalKnownHostsFile
a UserKnownHostsFile
možnosti na /dev/null
:
ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null [email protected]
Nastavení StrictHostKeyChecking=no
vám umožní připojit se, ale SSH stále bude zobrazovat varování :
ssh -o StrictHostKeyChecking=no [email protected]
Jak poznamenali jiní, je pravděpodobně lepší řešit základní problém. Můžete například zvážit ověření pomocí certifikátu SSH pro ověření hostitelů.
Řešení 3:
Pokud jste přeinstalovali server, a proto se změnila identifikace, měli byste jednoduše odstranit zadaný řádek 155 z /Users/alexus/.ssh/known_hosts
a pokračujte.
Pokud přepínáte mezi různými privátními sítěmi, měli byste pro připojení místo toho používat názvy hostitelů, protože klient ssh také uloží klíče v závislosti na názvu hostitele. Přidejte něco takového do /etc/hosts
:
10.52.11.171 server1
10.52.11.171 server2
a poté použijte ssh server1
při připojení k podsíti 1 a ssh server2
při připojení k podsíti 2. Tímto způsobem mohou mít oba servery různé hostitelské klíče.
Řešení 4:
-o StrictHostKeyChecking=no
funguje pouze v případě, že hostitel již není přítomen v souboru známých_hostitelů.
Myslím, že je čistší (bez varování), pokud očekáváte, že se klíč hostitelů změní možná kvůli klonování vm, vynutit ignorování těchto druhů hostitelů, jako je tento:
# Handle possible SSH key changes
host_key=$(ssh-keyscan -t rsa ${host_ip})
grep "${host_key}" ~/.ssh/known_hosts >/dev/null || {
ssh-keygen -R ${host_ip}
echo ${host_key} >> ~/.ssh/known_hosts
}
# connect as normal way
ssh [email protected]${host_ip} "hostname"
Řešení 5:
Někteří lidé říkají, že to není správné, nemusíte to dělat a tak dále, ale potřebuji to také k opakovanému testování několika vestavěných zařízení. Musíte vypnout StrictHostKeyChecking=no
, to je správné, ale také resetujte soubor známých hostitelů na /dev/null
. Zde je příklad s automatickým přihlášením a ps
na vzdáleném zařízení.
sshpass -p pass ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] 'ps ax'