Jak nakonfigurovat vlastní připojení SSH pro zjednodušení vzdáleného přístupu
SSH (SSH klient) je program pro vzdálený přístup k počítači, umožňuje uživateli provádět příkazy na vzdáleném hostiteli. Je to jedna z nejvíce doporučených metod pro přihlášení ke vzdálenému hostiteli, protože je navržena tak, aby poskytovala zabezpečenou šifrovanou komunikaci mezi dvěma nedůvěryhodnými hostiteli přes nezabezpečenou síť.
SSH používá jak celosystémový, tak i uživatelský (vlastní) konfigurační soubor. V tomto tutoriálu vysvětlíme, jak vytvořit vlastní konfigurační soubor ssh a jak používat určité možnosti pro připojení ke vzdáleným hostitelům.
Požadavky:
- Na ploše Linuxu musíte mít nainstalovaného klienta OpenSSH.
- Pochopte běžné možnosti používané pro vzdálená připojení přes ssh.
Soubory konfigurace klienta SSH
Níže jsou uvedena umístění konfiguračních souborů klienta ssh:
/etc/ssh/ssh_config
– toto je výchozí konfigurační soubor pro celý systém. Obsahuje nastavení, která platí pro všechny uživatele klientského počítače ssh.~/.ssh/config
nebo$HOME/.ssh/config
– je uživatelsky specifický/vlastní konfigurační soubor. Má konfigurace, které platí pro konkrétního uživatele. Proto přepíše výchozí nastavení v konfiguračním souboru pro celý systém. Toto je soubor, který vytvoříme a použijeme.
Ve výchozím nastavení jsou uživatelé autentizováni v ssh pomocí hesel, ale můžete nastavit přihlašování ssh bez hesla pomocí ssh keygen v 5 jednoduchých krocích.
Poznámka: V případě, že adresář ~/.ssh
na vašem počítači neexistuje, vytvořte jej s následujícími oprávněními.
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
Výše uvedený příkaz chmod znamená, že pouze uživatel může mít oprávnění ke čtení, zápisu a spouštění v adresáři, jak to vyžaduje nastavení ssh.
Jak vytvořit uživatelský konfigurační soubor SSH
Tento soubor obvykle není vytvořen ve výchozím nastavení, takže jej musíte vytvořit s oprávněními pro čtení/zápis pouze pro uživatele.
touch ~/.ssh/config
chmod 0700 ~/.ssh/config
Výše uvedený soubor obsahuje sekce definované specifikacemi hostitelů a sekce se použije pouze na hostitele, kteří odpovídají jednomu ze vzorů nastavených ve specifikaci.
Konvenční formát ~/.ssh/config
je následující a všechny prázdné řádky i řádky začínající ‘#‘
jsou považovány za komentáře:
Host host1
ssh_option1=value1
ssh_option2=value1 value2
ssh_option3=value1
Host host2
ssh_option1=value1
ssh_option2=value1 value2
Host *
ssh_option1=value1
ssh_option2=value1 value2
Z výše uvedeného formátu:
- Host host1 – je definice záhlaví pro host1, zde začíná specifikace hostitele a končí další definicí záhlaví, Host host2. oddíl.
- host1, host2 jsou prostě aliasy hostitele, které se používají na příkazovém řádku, nejsou to skutečné názvy hostitelů vzdálených hostitelů.
- Možnosti konfigurace jako ssh_option1=value1, ssh_option2=value1 value2 platí pro odpovídající hostitele a měly by být odsazeny pro dobře organizované formátování.
- U možnosti, jako je ssh_option2=hodnota1 hodnota2, je nejprve uvažována hodnota hodnota1 a poté hodnota2.
- Definice záhlaví Hostitel * (kde
*
je vzor – zástupný znak, který odpovídá nule nebo více znakům) bude odpovídat žádnému nebo více hostitelům.
Stále s ohledem na výše uvedený formát takto ssh čte konfigurační soubor. Pokud spustíte příkaz ssh pro vzdálený přístup k host1 takto:
ssh host1
Výše uvedený příkaz ssh provede následující věci:
- shoduje se s aliasem hostitele host1 v konfiguračním souboru a použije možnosti nastavené v záhlaví definice Host host1.
- poté se přesune do další sekce hostitele, Host host2 a zjistí, že název uvedený na příkazovém řádku se neshoduje, takže odtud nejsou použity žádné možnosti.
- Pokračuje se do poslední sekce Hostitel *, která odpovídá všem hostitelům. Zde aplikuje všechny možnosti v této části na hostitelské připojení. Nemůže však přepsat žádné hodnoty voleb, které již byly použity v předchozí části (sekcích).
- Totéž platí pro host2.
Jak používat konfigurační soubor SSH specifický pro uživatele
Jakmile pochopíte, jak konfigurační soubor klienta ssh funguje, můžete jej vytvořit následovně. Nezapomeňte použít možnosti a hodnoty (aliasy hostitele, čísla portů, uživatelská jména atd.) použitelné pro prostředí vašeho serveru.
Otevřete konfigurační soubor pomocí svého oblíbeného editoru:
vi ~/.ssh/config
A definujte potřebné sekce:
Host fedora25
HostName 192.168.56.15
Port 22
ForwardX11 no
Host centos7
HostName 192.168.56.10
Port 22
ForwardX11 no
Host ubuntu
HostName 192.168.56.5
Port 2222
ForwardX11 yes
Host *
User tecmint
IdentityFile ~/.ssh/id_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO
Podrobné vysvětlení výše uvedených možností konfigurace ssh.
- HostName – definuje skutečné jméno hostitele, ke kterému se chcete přihlásit, případně můžete použít číselné IP adresy, je to také povoleno (jak na příkazovém řádku, tak ve specifikacích HostName) .
- Uživatel – určuje uživatele, který se má přihlásit.
- Port – nastavuje číslo portu pro připojení na vzdáleném hostiteli, výchozí je 22. Použijte číslo portu nakonfigurované v konfiguračním souboru sshd vzdáleného hostitele.
- Protokol – tato možnost definuje verze protokolu, které má ssh podporovat, v pořadí podle preferencí. Obvyklé hodnoty jsou ‘1‘ a ‘2‘, více verzí je třeba oddělit čárkou.
- IdentityFile – určuje soubor, ze kterého se načítá autentizační identita uživatele DSA, Ed25519, RSA nebo ECDSA.
- ForwardX11 – určuje, zda budou připojení X11 automaticky přesměrována přes zabezpečený kanál a nastavení DISPLAY. Má dvě možné hodnoty „ano“ nebo „ne“.
- Komprese – používá se k nastavení komprese během vzdáleného připojení s hodnotou „ano“. Výchozí hodnota je „ne“.
- ServerAliveInterval – nastavuje časový limit v sekundách, po kterém, pokud ze serveru nepřijde žádná odpověď (nebo data), ssh odešle zprávu přes šifrovaný kanál s žádostí o odpověď ze serveru. Výchozí hodnota je 0, což znamená, že na server nebudou odesílány žádné zprávy, nebo 300, pokud byla definována možnost BatchMode.
- ServerAliveCountMax – nastavuje počet aktivních zpráv serveru, které mohou být odeslány, aniž by ssh obdržel jakoukoli odpověď ze serveru.
- LogLevel – definuje úroveň výřečnosti, která se používá při protokolování zpráv z ssh. Povolené hodnoty zahrnují: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 a DEBUG3. A výchozí je INFO.
Standardní způsob připojení k libovolnému vzdálenému hostiteli Linuxu (CentOS 7 – v mém případě), definovaný v části dvě výše uvedeného konfiguračního souboru, bychom normálně zadali příkaz níže:
ssh -i ~/.ssh/id_rsa -p 22 [email
S použitím konfiguračního souboru klienta ssh však můžeme jednoduše zadat následující příkaz:
ssh centos7
Další možnosti a příklady použití naleznete na manuálové stránce konfigurace klienta ssh:
$man ssh_config
To je pro tuto chvíli vše, v této příručce jsme vám vysvětlili, jak používat uživatelský (vlastní) konfigurační soubor ssh klienta v Linuxu. Použijte níže uvedený formulář zpětné vazby a napište nám ohledně tohoto článku.