GNU/Linux >> Znalost Linux >  >> Linux

Dočasně ignorovat můj soubor `~/.ssh/known_hosts`?

Ř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'

Linux
  1. [Linux]:Jak hashovat soubory známých hostitelů z adresáře ~/.ssh/

  2. Jak obnovit soubor Ssh_config v /etc/ssh?

  3. Nelze spustit X aplikací přes SSH v Linuxu

  1. Jak ověřit syntaxi souboru /etc/ssh/sshd_config

  2. echo nebo print /dev/stdin /dev/stdout /dev/stderr

  3. SSH - Jak zahrnout příkaz -t do souboru ~/.ssh/config

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?