it-swarm-eu.dev

jak se vyhnout ssh žádat o svolení?

Pokoušíme se urychlit instalaci Oracle uzlů pro instalaci RAC. to vyžaduje, abychom si nainstalovali a nakonfigurovali ssh, aby nevyžadoval zadání hesla.

Problém je: Při prvním použití jsme vyzváni

RSA key fingerprint is 96:a9:23:5c:cc:d1:0a:d4:70:22:93:e9:9e:1e:74:2f.
Are you sure you want to continue connecting (yes/no)? yes

Existuje způsob, jak tomu zabránit, nebo jsme odsouzeni k ručnímu připojení alespoň jednou na každém serveru z každého serveru ručně?

70

Aktualizace prosince 2019:

Jak Chris Adams zdůraznil níže, od doby, kdy byla tato odpověď napsána, došlo k poměrně významné změně Openssh za 6,5 ​​let a existuje nová možnost, která je mnohem bezpečnější než původní doporučení níže:

* ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "off", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   Host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400

Takže místo nastavení StrictHostKeyChecking no ve vašem ssh_config soubor, nastavte StrictHostKeyChecking accept-new.


Set StrictHostKeyChecking no ve vašem /etc/ssh/ssh_config soubor, kde se jedná o globální možnost používanou každým uživatelem na serveru. Nebo jej vložte do svého ~/.ssh/config soubor, kde bude výchozí pouze pro aktuálního uživatele. Nebo můžete použít na příkazovém řádku:

ssh -o StrictHostKeyChecking=no -l "$user" "$Host"

Zde je vysvětlení, jak to funguje od man ssh_config (nebo viz tato aktuální verze ):

StrictHostKeyChecking

      Pokud je tento příznak nastaven na „ano“, ssh nikdy automaticky nepřidá klíče hostitele k $HOME/.ssh/known_hostssoubor a odmítá se připojit k hostitelům, jejichž klíč hostitele se změnil. To poskytuje maximální ochranu před útoky trojských koní, ale může být nepříjemné, když /etc/ssh/ssh_known_hostssoubor je špatně udržován nebo se často navazuje spojení s novými hostiteli. Tato možnost nutí uživatele ručně přidat všechny nové hostitele. Pokud je tento příznak nastaven na „ne“, ssh automaticky přidá nové klíče hostitele do souborů hostitelů známých uživateli. Pokud je tento příznak nastaven na „zeptat se“, budou nové klíče hostitele přidány do uživatelských souborů hostitele známých až poté, co uživatel potvrdí, že to, co opravdu chtějí, a ssh se odmítne připojit k hostitelům, jejichž klíč hostitele se změnil. Klíče hostitele známých hostitelů budou ve všech případech ověřovány automaticky. Argument musí být „ano“, „ne“ nebo „požádat“. Výchozí hodnota je „ask“.
101
Tim Kennedy

ssh-keyscan - Shromažďujte veřejné klíče ssh

Pokud již znáte seznam hostitelů, ke kterým se budete připojovat, můžete pouze vydat:

ssh-keyscan Host1 Host2 Host3 Host4

Můžete dát -H možnost nechat to hash výsledky jako výchozí ssh

Také můžete dát -t keytype byly keytype je dsa, rsa nebo ecdsa, pokud dáváte přednost tomu, který typ klíče je třeba chytit místo výchozího .

Jakmile spustíte ssh-keyscan bude předem vyplněn váš soubor známých hostitelů a nebudete muset ssh žádat o povolení k přidání nového klíče.

29
kurtm

Otisk prstu můžete přidat do známých_hostitelů každého serveru. Pro jednoho uživatele:

cat ~/.ssh/known_hosts
echo "$SERVER,$PORT ssh-rsa $SERVER_KEY_FINGERPRINT" >> ~/.ssh/known_hosts
12
David Souther

Ignorovat hostitele

Ignorujte HostKeyChecking. K tomu používám např .:

ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null [email protected]

Přidat hostitele

Přidat otisk prstu hostitele/serveru do .ssh/known_hosts před prvním připojením. Toto je bezpečnější způsob.

11
xebeche

Před vyzkoušením proveďte následující úryvek.

mkdir -p ~/.ssh     
echo "Host *" > ~/.ssh/config     
echo " StrictHostKeyChecking no" >> ~/.ssh/config

ps: Striktně ne pro produkční servery, pozor na ManInMiddle

3
147.3k

Před vyzkoušením proveďte následující úryvek.

mkdir -p ~/.ssh  &&  echo "Host *" > ~/.ssh/config && echo " StrictHostKeyChecking no" >> ~/.ssh/config

ps: Striktně ne pro produkční servery, pozor na ManInMiddle

1

Líbí se mi Timova odpověď na věci jednorázového typu, ale pokud se jedná o hostitele, ke kterému se chcete pravidelně připojovat, vytvořil bych položku ve vašem ~/.ssh/config (vytvořte ji, pokud soubor neexistuje).

# this example shows wildcard for IP
# you can even use more than one wildcard 10.0.*.* for example
Host 192.168.56.*
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
# you can even alias it, which is really useful when scp'ing/rsyncing foo:/path/to/remote
Host foo
    HostName foo-long-192-10-135-55.hostname.not-going-to-remember.doh
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
0
Jaime