Vyhledávání na webu

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:

  1. Na ploše Linuxu musíte mít nainstalovaného klienta OpenSSH.
  2. 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:

  1. /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.
  2. ~/.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:

  1. Host host1 – je definice záhlaví pro host1, zde začíná specifikace hostitele a končí další definicí záhlaví, Host host2. oddíl.
  2. 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ů.
  3. 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í.
  4. U možnosti, jako je ssh_option2=hodnota1 hodnota2, je nejprve uvažována hodnota hodnota1 a poté hodnota2.
  5. 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:

  1. shoduje se s aliasem hostitele host1 v konfiguračním souboru a použije možnosti nastavené v záhlaví definice Host host1.
  2. 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.
  3. 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).
  4. 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.

  1. 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) .
  2. Uživatel – určuje uživatele, který se má přihlásit.
  3. 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.
  4. 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.
  5. IdentityFile – určuje soubor, ze kterého se načítá autentizační identita uživatele DSA, Ed25519, RSA nebo ECDSA.
  6. 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“.
  7. Komprese – používá se k nastavení komprese během vzdáleného připojení s hodnotou „ano“. Výchozí hodnota je „ne“.
  8. 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.
  9. ServerAliveCountMax – nastavuje počet aktivních zpráv serveru, které mohou být odeslány, aniž by ssh obdržel jakoukoli odpověď ze serveru.
  10. 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.