V minulém díle jsme si představili možnosti, jak nastavit SSH na serveru a nyní si v našem seriálu o protokolu SSH ukážeme několik úprav chování, které můžete učinit na klientské straně připojení.

Definice připojovacích informací specifických pro jednotlivé servery

Na lokálním počítači můžete definovat individuální konfigurace pro jednotlivé servery nebo pro všechny servery, k nimž se připojujete. Můžete je uložit do souboru ~/.ssh/config, který čte SSH klient pokaždé, když se zavolá.

Na lokálním počítači otevřete nebo vytvořte tento soubor v textovém editoru:

nano ~/.ssh/config

Uvnitř souboru nadefinujte individuální konfigurační volby tak, že každou z nich uvedete klíčovým slovem Host, za nímž následuje alias. Pod tím a s odsazením můžete nadefinovat jakékoli z direktiv, které se nacházejí v manuálu pro ssh_config:

man ssh_config

Ukázka takové konfigurace:

Host testhost
HostName example.com
Port 4444
User demo

Pak se budete moci připojit k example.com na portu 4444 s uživatelským jménem „demo“ tak, že napíšete prostě jen:

ssh testhost

Můžete také používat zástupné znaky (wildcards), abyste mohli uvést více houstů, ne pouze jeden. Mějte však na paměti, že co uvedete později, může překrýt to, co jste uvedli dříve. Z tohoto důvodu byste měli dávat nahoru nejobecnější definice. Můžete například jako výchozí stav uvést, že žádné připojení nepovoluje X přeposílání, ale pro example.com to překryjete. V souboru tedy uvedete:

Host *
ForwardX11 no

Host testhost
HostName example.com
ForwardX11 yes
Port 4444
User demo

Až skončíte, soubor uložte a zavřete.

Jak udržet připojení naživu, aby nevypršela jeho platnost

Pokud jste zjistili, že jste byli odpojeni od SSH relace dřív, než jste byli připraveni něco dělat, je možné, že připojení vypršela platnost.

Klienta můžete nakonfigurovat tak, aby pravidelně zasílal nějaký paket na server tak často, že se takové situace vyvarujete.

Na lokálním počítači to můžete nakonfigurovat pro každé připojení patřičnou úpravou v souboru ~/.ssh/config. Otevřete ho:

nano ~/.ssh/config

Pokud na začátku souboru není sekce, které vyhovují všechny housty, definujte ji. Nastavte ServerAliveInterval na „120“, aby se na server odesílal paket každé dvě minuty. To by mělo být postačující oznámení pro server, že nemá připojení uzavírat:

Host *
ServerAliveInterval 120

Až skončíte, soubor uložte a zavřete.

Vypnutí kontroly houstu

Vždy, když se připojíte k nějakému novému serveru, standardně vám bude předložen otisk prstu klíče SSH démona vzdáleného houstu.

The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Je to takto nakonfigurované proto, abyste mohli ověřit autenticitu houstu, ke kterému se pokoušíte připojit, a rozpoznat případy, kdy se nějaký uživatel se zákeřnými úmysly pokouší vydávat za vzdálený houst.

Za jistých okolností si možná budete přát tuto funkci vypnout. Poznámka. To však může být velmi riskantní z hlediska bezpečnosti, takže se ujistěte, že přesně víte, co děláte, pokud se rozhodnete nakonfigurovat systém takto.

Chcete-li udělat tuto změnu, otevřete na lokálním počítači soubor ~/.ssh/config:

nano ~/.ssh/config

Pokud na začátku souboru není sekce, které vyhovují všechny housty, definujte ji. Nastavte direktivu StrictHostKeyChecking na „no“, aby se nové housty automaticky přidávaly do souboru known_hosts. Nastavte UserKnownHostsFile na /dev/null, aby se nevydávalo upozornění pro nové nebo změněné housty:

Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Kontrolu houstů pak můžete zapínat případ od případu tím, že pro jiné housty tyto volby vrátíte. Výchozí hodnota pro StrictHostKeyChecking je „ask“:

Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Host testhost
HostName example.com
StrictHostKeyChecking ask
UserKnownHostsFile /home/demo/.ssh/known_hosts

Multiplexování SSH přes jediné TCP připojení

Mohou nastat situace, kdy zřídit nové TCP připojení může trvat déle, než jste ochotni snášet. Pokud činíte více připojení k témuž stroji, využijte přednosti multiplexování.

SSH multiplexování opětovně používá stejné TCP připojení pro více SSH relací. Odstraňuje se tím část prací nezbytných pro zřízení nové relace, a patrně se tím věci urychlí. Limitovat počet připojení se může hodit i z jiných příčin.

Chcete-li připravit multiplexování, můžete všechna připojení připravit ručně, nebo nakonfigurujte klienta tak, aby multiplexování používal automaticky vždy, když je to možné. My zde předvedeme tu druhou možnost.

Abyste nakonfigurovali multiplexování, otevřete v editoru na lokálním stroji konfigurační soubor SSH klienta:

nano ~/.ssh/config

Pokud na začátku souboru není definice houstu se zástupnými znaky, přidejte ji (například Host *). Abychom nakonfigurovali multiplexování, nastavíme hodnoty direktiv ControlMaster, ControlPath a ControlPersist.

ControlMaster by měla být nastavena na „auto“, aby se multiplexování povolovalo automaticky, jakmile je možné. Direktiva ControlPath zřídí cestu k řídícímu soketu. Tento soket vytvoří první relace a následné relace budou schopné ho najít, protože je oštítkován uživatelským jménem, houstem a portem.

Nastavením volby ControlPersist na „1“ umožníme, aby se počáteční hlavní připojení přesunulo do pozadí. Hodnota „1“ specifikuje, že TCP připojení se má automaticky ukončit jednu sekundu poté, co se uzavře poslední SSH relace:

Host *
ControlMaster auto
ControlPath ~/.ssh/multiplex/%r@%h:%p
ControlPersist 1

Až skončíte, soubor uložte a zavřete. Teď ještě potřebujeme vytvořit adresář, který jsme specifikovali v řídící cestě:

mkdir ~/.ssh/multiplex

Nyní se všechny relace zřizované se stejným strojem budou pokoušet použít existující soket a TCP připojení. Až skončí poslední relace, po jedné sekundě bude připojení zničeno.

Pokud potřebujete z nějakého důvodu dočasně multiplexovou konfiguraci obcházet, dá se to zařídit předáním indikátoru -S s „none“:

ssh -S none username@remote_host

V dalším pokračování seriálu o SSH si ukážeme, jak na tunelování serveru, ukážeme si řízení SSH pomocí escape kódů. Přihlaste se k odběru novinek a pošleme vám upozornění na nové díly ihned po zveřejnění.

logo-zonercloudČlánek byl přeložen díky ZonerCloud.cz – výkonné a levné VPS servery do 55 sekund.

Zabezpečte váš server SSL certifikátem. Je to snadné. Přesvědčte se v článku 7 mýtů o SSL certifikátech na vašem serveru.

Napsal: Justin Elingwood
Přeložil RNDr. Jan Pokorný
Znění původního článku najdete zde

Creative Commons License

Žádný příspěvek v diskuzi

Odpovědět