Android

Použití konfiguračního souboru ssh

PuTTY a spol. (Adam Hořčica)

PuTTY a spol. (Adam Hořčica)

Obsah:

Anonim

Jednou z možností by bylo vytvoření aliasu bash pro každé připojení ke vzdálenému serveru. Existuje však jiné, mnohem lepší a jednodušší řešení tohoto problému. OpenSSH vám umožňuje nastavit konfigurační soubor pro každého uživatele, kde můžete uložit různé možnosti SSH pro každý vzdálený počítač, ke kterému se připojujete.

Tato příručka se zabývá základy konfiguračního souboru klienta SSH a vysvětluje některé z nejčastějších možností konfigurace.

Předpoklady

Předpokládáme, že používáte Linux nebo systém MacOS s nainstalovaným klientem OpenSSH.

Umístění souboru SSH

Konfigurační soubor OpenSSH na straně klienta je pojmenován config a je uložen v adresáři .ssh pod domovským adresářem uživatele.

Adresář ~/.ssh se vytvoří automaticky, když uživatel poprvé spustí příkaz ssh . Pokud adresář ve vašem systému neexistuje, vytvořte jej pomocí následujícího příkazu:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Ve výchozím nastavení nemusí konfigurační soubor SSH existovat, takže jej budete možná muset vytvořit pomocí příkazu touch:

touch ~/.ssh/config

Tento soubor musí být čitelný a zapisovatelný pouze uživatelem a nesmí být přístupný ostatním:

chmod 600 ~/.ssh/config

Struktura a vzory souborů SSH

Konfigurační soubor SSH má následující strukturu:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

Obsah konfiguračního souboru klienta SSH je uspořádán do stanz (sekcí). Každá stanza začíná direktivou Host a obsahuje specifické možnosti SSH, které se používají při navazování spojení se vzdáleným serverem SSH.

Odsazení není vyžadováno, ale je doporučeno, protože usnadňuje čtení souboru.

Host směrnice může obsahovat jeden vzor nebo seznam vzorů oddělených mezerami. Každý vzor může obsahovat nula nebo více znaků bez mezer nebo jeden z následujících specifikátorů vzoru:

  • * - Shoda nula nebo více znaků. Například Host * odpovídá všem hostitelům, zatímco 192.168.0.* Odpovídá hostitelům v podsíti 192.168.0.0/24 . ? - Odpovídá přesně jedné postavě. Vzor, Host 10.10.0.? odpovídá všem hostitelům v 10.10.0. rozsah. ! - Při použití na začátku vzoru neguje shodu. Například Host 10.10.0.* !10.10.0.5 odpovídá libovolnému hostiteli v podsíti 10.10.0.5 kromě 10.10.0.5 .

Klient SSH čte stanzu konfiguračního souboru po stanze a pokud se shoduje více než jeden vzorek, mají přednost volby z první odpovídající stanzy. Proto by měla být na začátku souboru uvedena větší deklarace specifická pro hostitele a na konci souboru obecnější přepsání.

Úplný seznam dostupných možností ssh najdete zadáním příkazu man ssh_config do svého terminálu nebo na stránce ssh_config man.

Konfigurační soubor SSH je také čten jinými programy, jako jsou scp , sftp a rsync .

Příklad konfiguračního souboru SSH

Nyní, když jsme pokryli základní konfigurační soubor SSH, podívejme se na následující příklad.

Při připojení ke vzdálenému serveru pomocí SSH se obvykle zadává jméno vzdáleného uživatele, název hostitele a port. Chcete-li se například přihlásit jako uživatel s názvem john k hostiteli s názvem dev.example.com na portu 2322 z příkazového řádku, zadejte:

ssh [email protected] -p 2322

Chcete-li se připojit k serveru pomocí stejných možností, jaké jsou uvedeny ve výše uvedeném příkazu, jednoduše zadáním ssh dev , do souboru "~/.ssh/config vložte následující řádky:

~ /.ssh / config

Host dev HostName dev.example.com User john Port 2322

Když nyní zadáte ssh dev , klient ssh přečte konfigurační soubor a použije podrobnosti o připojení určené pro hostitele dev :

ssh dev

Příklad konfigurovaného souboru SSH

Tento příklad poskytuje podrobnější informace o vzorcích hostitelů a prioritě možností.

Vezměme si následující příklad:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Když zadáte ssh targaryen , ssh klient přečte soubor a použije možnosti z první shody, což je Host targaryen . Poté postupně zkontroluje, zda příští stanzy odpovídají vzoru. Další vyhovující je Host * !martell (což znamená všechny hostitele kromě martell ) a použije možnost připojení z této stanzy. Poslední definice Host * také shoduje, ale ssh klient vezme pouze možnost Compression protože volba User je již definována ve stanze Host targaryen .

    Úplný seznam možností použitých při psaní ssh targaryen je následující:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Při spuštění ssh tyrell jsou odpovídajícími vzory hostitele: Host tyrell , Host *ell , Host * !martell a Host * . Možnosti použité v tomto případě jsou:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Pro všechna ostatní připojení použije klient ssh možnosti uvedené v Host * !martell a Host * .

Přepsat možnost konfiguračního souboru SSH

Klient ssh čte svou konfiguraci v následujícím pořadí priority:

  1. Možnosti zadané z příkazového řádku. Volby definované v ~/.ssh/config Volby definované v /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

a chcete použít všechny ostatní možnosti, ale připojit se jako uživatel root místo john jednoduše zadejte uživatele na příkazovém řádku:

ssh -o "User=root" dev

Možnost -F ( configfile ) umožňuje určit alternativní konfigurační soubor pro jednoho uživatele.

Chcete-li říct klientovi ssh aby ignoroval všechny možnosti uvedené v konfiguračním souboru ssh, použijte:

ssh -F /dev/null [email protected]

Závěr

Ukázali jsme vám, jak nakonfigurovat váš konfigurační soubor ssh uživatele. Můžete také nastavit autentizaci pomocí klíče SSH a připojit se k serverům Linux bez zadání hesla.

Ve výchozím nastavení poslouchá SSH na portu 22. Změna výchozího portu SSH přidává na server další vrstvu zabezpečení snížením rizika automatických útoků.

ssh terminál