Pokud jste alespoň trochu obeznámeni s SSH, víte, že jej můžete použít k připojení ke vzdáleným systémům Linux.
Použití SSH pro připojení ke vzdálenému systému je jednoduché. Vše, co musíte udělat, je použít příkaz jako je tento:
ssh [email protected]_IP
Tím se připojí k výchozímu portu SSH 22. Pokud chcete, můžete také zadat port.
Nyní je to vše jasné a jednoduché, pokud máte pouze jeden server. I když si nepamatujete IP adresu serveru, můžete provést zpětné vyhledávání v historii pomocí známé terminálové klávesové zkratky Ctrl+R a najít příkaz SSH, který jste používali v minulosti.
Ale věci se zkomplikují, když musíte spravovat několik serverů. Mám asi deset serverů, ke kterým se čas od času připojuji. Některé jsou produkční servery a některé jsou testovací servery.
Nyní není snadné sledovat tyto servery. I když najdu příkazy SSH z historie, je těžké odhadnout, která IP patří ke kterému serveru.
Samozřejmě mohu otevřít své řídicí panely na Linode, UpCloud, DigitalOcean a Google Cloud, abych získal IP nebo si ponechal seznam v místním systému.
Lepší a jednodušší způsob je použít konfigurační soubor SSH.
Použití konfiguračního souboru SSH pro snadné připojení ke vzdáleným serverům
Konfigurační soubor SSH umožňuje vytvářet různé profily pro různé konfigurace hostitele. Takových profilů není omezeno a můžete jich přidat tolik, kolik je jen možné.
Pokud se tedy připojujete k více vzdáleným systémům prostřednictvím SSH, vytvoření profilů SSH bude dobrým krokem, jak ušetřit váš čas.
Dovolte mi, abych vám ukázal, jak jej používat.
Krok 1:Vytvořte konfigurační soubor SSH
Když nainstalujete SSH, budete mít adresář ~/.ssh vytvořený automaticky. Tento přímý obsahuje váš veřejný klíč, soukromý klíč a soubor známých_hostitelů. Zde je také uložena vaše konfigurace.
Alespoň na Ubuntu není konfigurační soubor SSH ve výchozím nastavení vytvořen. Tento soubor můžete snadno vytvořit pomocí dotykového příkazu takto:
touch ~/.ssh/config
Krok 2:Přidejte profil SSH do konfiguračního souboru
Nyní, když máte konfigurační soubor SSH, můžete jej upravit pomocí Vim nebo Nano. Dovolte mi ukázat vám příklad syntaxe, kterou byste měli dodržovat.
Řekněme, že se připojujete k serveru s IP 275.128.172.46. Vaše uživatelské jméno je Alice a server se používá pro hostování vašich webových stránek. Chcete-li posílit zabezpečení SSH, použijte port 1500 namísto výchozího portu SSH 22.
Všechny tyto informace můžete přidat do svého souboru ~/.ssh/config následujícím způsobem:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Stačí uložit informace do souboru. Není třeba restartovat žádnou službu.
Nyní místo psaní dlouhého příkazu, jako je tento:
ssh [email protected] -p 1500
Můžete použít pouze tento příkaz (funguje také doplňování karet):
ssh website
Když spustíte výše uvedený příkaz, ssh hledá hostitele s názvem webu v ~/.ssh/config. Pokud najde hostitele s tímto jménem, získá všechny související informace a použije je k vytvoření připojení SSH.
Možná vás napadne pár věcí, takže to zmíním zde:
- Při zadávání informací o hostiteli není omezena mezera ani odsazení tabulátoru. Mezera nebo odsazení tabulátoru se používá k tomu, aby byl konfigurační soubor snadno srozumitelný.
- Název hostitele může být IP adresa serveru nebo název hostitele, který lze přeložit ve vaší síti.
- Všechny parametry, jako je název hostitele, uživatel a port, jsou volitelné. Osobně však doporučuji ponechat si alespoň název hostitele, protože to je to, co většinu času potřebujete (a zapomínáte).
- Pokud je váš konfigurační soubor SSH nakonfigurován nesprávně, při pokusu o jeho použití pro připojení SSH dojde k chybě.
- Nemůžete ukládat hesla v konfiguraci SSH. Doporučuji přidat svůj veřejný klíč SSH na server pro snadný přístup.
Krok 3:Přidání více profilů do konfiguračního souboru SSH
Předchozí krok vám poskytl představu o tom, jak přidat profil SSH. Pojďme k dalšímu kroku přidáním více profilů.
Takto nyní vypadá konfigurační soubor SSH:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Host forum-server
Hostname 275.128.172.47
User alice
Host main-server
Hostname 275.128.172.49
Host common-test-server
Hostname test-server
Host *
User root
Tentokrát jsem do něj přidal čtyři různé profily SSH.
Všimli jste si Hostitel * záznam na konci souboru? Tento záznam můžete použít k přidání parametru společného pro všechny profily, pokud tento parametr nebyl u profilu výslovně uveden.
Takže pokud se pokusím použít profil SSH hlavního serveru, automaticky to vezme uživatele root.
ssh main-server =ssh [email protected]
Pořadí konfigurace SSH
Konfigurace ssh probíhá v následujícím pořadí:
- možnosti příkazového řádku
- uživatelský konfigurační soubor (~/.ssh/config)
- konfigurační soubor pro celý systém (/etc/ssh/ssh_config)
To znamená, že prioritu má příkaz, který zadáte, a poté se podívá do ~/.ssh/config a poté do /etc/ssh/ssh_config.
Pokud tedy chcete profil přepsat, můžete to udělat pomocí volby -o příkazu ssh.
Pokud například použiji tento příkaz:
ssh -o "User=bob" website
Bude to trvat uživatele bob místo uživatele alice, jak je definováno v ~/.ssh/config (v předchozím kroku).
Konfigurace SSH obsahuje mnohem více
Abych byl upřímný, v konfiguračním souboru SSH je mnohem více, které nelze pokrýt v jediném článku. Můžete použít shodu názvu/IP, podsítě a co ne.
Cílem tohoto článku bylo představit vám konfiguraci SSH a pomoci vám vytvořit profily SSH pro snadné připojení k různým vzdáleným systémům Linux.
Vždy se můžete podívat na manuálovou stránku ssh_config, kde se dozvíte více o parametrech, které můžete použít při vytváření konfiguračního souboru SSH.
Doufám, že vám tento tip SSH pomohl. Pokud již používáte konfigurační soubor SSH a máte s sebou nějaký šikovný tip, podělte se o něj s námi ostatními v sekci komentářů.