GNU/Linux >> Znalost Linux >  >> Linux

Příkaz SSH

Secure Shell (SSH) je šifrovací síťový protokol používaný pro šifrované spojení mezi klientem a serverem. Klient ssh vytvoří zabezpečené připojení k serveru SSH na vzdáleném počítači. Šifrované připojení lze použít k provádění příkazů na serveru, tunelování X11, přesměrování portů a dalším.

K dispozici je řada klientů SSH, bezplatných i komerčních, přičemž nejpoužívanějším klientem je OpenSSH. Je k dispozici na všech hlavních platformách, včetně Linuxu, OpenBSD, Windows a macOS.

Tento článek vysvětluje, jak používat OpenSSH klienta příkazového řádku (ssh ) pro přihlášení ke vzdálenému počítači a spouštění příkazů nebo provádění jiných operací.

Instalace klienta OpenSSH #

Klientský program OpenSSH se nazývá ssh a lze jej vyvolat z terminálu. Klientský balíček OpenSSH také poskytuje další nástroje SSH, jako je scp a sftp které jsou nainstalovány spolu s ssh příkaz.

Instalace klienta OpenSSH v systému Linux #

Klient OpenSSH je ve výchozím nastavení předinstalován na většině distribucí Linuxu. Pokud váš systém nemá nainstalovaného klienta ssh, můžete jej nainstalovat pomocí správce distribučních balíčků.

Instalace OpenSSH na Ubuntu a Debian #

sudo apt updatesudo apt install openssh-client

Instalace OpenSSH na CentOS a Fedora #

sudo dnf install openssh-clients

Instalace klienta OpenSSH na Windows 10 #

Většina uživatelů Windows používá Putty k připojení ke vzdálenému počítači přes SSH. Nejnovější verze Windows 10 však obsahují klienta a server OpenSSH. Oba balíčky lze nainstalovat přes GUI nebo PowerShell.

Chcete-li zjistit přesný název balíčku OpenSSH, zadejte následující příkaz:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Příkaz by měl vrátit něco takového:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Jakmile znáte název balíčku, nainstalujte jej spuštěním:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Po úspěchu bude výstup vypadat nějak takto:

Path          :
Online        : True
RestartNeeded : False

Instalace klienta OpenSSH na macOS #

macOS se standardně dodává s nainstalovaným klientem OpenSSH.

Jak používat ssh Příkaz #

Aby se bylo možné přihlásit ke vzdálenému počítači přes SSH, musí být splněny následující požadavky:

  • Na vzdáleném počítači musí být spuštěn SSH server.
  • Port SSH musí být otevřený ve firewallu vzdáleného počítače.
  • Musíte znát uživatelské jméno a heslo vzdáleného účtu. Účet musí mít správná oprávnění pro vzdálené přihlášení.

Základní syntaxe ssh příkaz je následující:

ssh [OPTIONS] [USER@]:HOST

Chcete-li použít ssh otevřete svůj terminál nebo PowerShell a zadejte ssh následovaný názvem vzdáleného hostitele:

ssh ssh.linuxize.com

Když se poprvé připojíte ke vzdálenému počítači přes SSH, zobrazí se zpráva jako níže.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

Každý hostitel má jedinečný otisk prstu, který je uložen v ~/.ssh/known_hosts soubor.

Zadejte yes k uložení vzdáleného otisku prstu a budete vyzváni k zadání hesla.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts.

[email protected]'s password:

Jakmile zadáte heslo, budete přihlášeni ke vzdálenému počítači.

Pokud není zadáno uživatelské jméno, ssh příkaz používá aktuální přihlašovací jméno systému.

Chcete-li se přihlásit jako jiný uživatel, zadejte uživatelské jméno a hostitele v následujícím formátu:

ssh username@hostname

Uživatelské jméno lze také zadat pomocí -l možnost:

ssh -l username hostname

Ve výchozím nastavení, když není zadán žádný port, se klient SSH pokusí připojit ke vzdálenému serveru na portu 22. Na některých serverech správci mění výchozí port SSH, aby přidali další vrstvu zabezpečení serveru snížením rizika automatizovaného útoky.

Chcete-li se připojit na jiný než výchozí port, použijte -p možnost zadat port:

ssh -p 5522 username@hostname

Pokud máte problémy s ověřováním nebo připojením, použijte -v možnost sdělit ssh pro tisk ladicích zpráv:

ssh -v username@hostname

Chcete-li zvýšit úroveň výřečnosti, použijte -vv nebo -vvv .

ssh příkaz přijímá řadu možností.

Úplný seznam všech možností naleznete v ssh manuálovou stránku zadáním man ssh ve vašem terminálu.

Konfigurační soubor SSH #

Pokud se denně připojujete k více vzdáleným systémům přes SSH, zjistíte, že zapamatovat si všechny vzdálené IP adresy, různá uživatelská jména, nestandardní porty a různé možnosti příkazového řádku je obtížné, ne-li nemožné.

Klient OpenSSH čte možnosti nastavené v konfiguračním souboru pro jednotlivé uživatele (~/.ssh/config ). V tomto souboru můžete uložit různé možnosti SSH pro každý vzdálený počítač, ke kterému se připojujete.

Ukázková konfigurace SSH je uvedena níže:

Host dev
    HostName dev.linuxize.com
    User mike
    Port 4422

Když vyvoláte ssh klienta zadáním ssh dev , příkaz přečte ~/.ssh/config a použijte podrobnosti připojení určené pro hostitele dev. V tomto příkladu ssh dev je ekvivalentní následujícímu:

ssh -p 4422 [email protected]

Další informace naleznete v článku o konfiguračním souboru SSH.

Ověření pomocí veřejného klíče #

Protokol SSH podporuje různé mechanismy ověřování.

Mechanismus ověřování na základě veřejného klíče vám umožňuje přihlásit se ke vzdálenému serveru, aniž byste museli zadávat heslo.

Tato metoda funguje tak, že se vygeneruje dvojice kryptografických klíčů, které se používají k autentizaci. Soukromý klíč je uložen na klientském zařízení a veřejný klíč je přenesen na každý vzdálený server, ke kterému se chcete přihlásit. Vzdálený server musí být nakonfigurován tak, aby přijímal ověřování pomocí klíče.

Pokud na místním počítači ještě nemáte pár klíčů SSH, můžete si jej vygenerovat zadáním:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Budete požádáni o zadání bezpečné přístupové fráze. Jestli chcete použít přístupovou frázi, je to na vás.

Jakmile budete mít svůj pár klíčů, zkopírujte veřejný klíč na vzdálený server:

ssh-copy-id username@hostname

Zadejte heslo vzdáleného uživatele a veřejný klíč bude připojen ke vzdálenému uživateli authorized_keys soubor.

Jakmile je klíč nahrán, můžete se přihlásit ke vzdálenému serveru, aniž byste byli vyzváni k zadání hesla.

Nastavením autentizace na základě klíče můžete zjednodušit proces přihlášení a zvýšit celkovou bezpečnost serveru.

Přesměrování portu #

Tunelování SSH nebo předávání portů SSH je metoda vytvoření šifrovaného spojení SSH mezi klientem a serverem, přes které lze přenášet porty služeb.

Předávání SSH je užitečné pro přenos síťových dat služeb, které používají nešifrovaný protokol, jako je VNC nebo FTP, pro přístup k geograficky omezenému obsahu nebo pro obcházení přechodných firewallů. V podstatě můžete přesměrovat jakýkoli TCP port a tunelovat provoz přes zabezpečené připojení SSH.

Existují tři typy přesměrování portů SSH:

Přesměrování místního portu #

Lokální přesměrování portů vám umožňuje přesměrovat připojení z klientského hostitele k hostiteli serveru SSH a poté k cílovému hostitelskému portu.

Chcete-li vytvořit místní přesměrování portů, předejte -L možnost ssh klient:

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Volba -f říká ssh příkaz pro spuštění na pozadí a -N neprovádět vzdálený příkaz.

Vzdálené přesměrování portů #

Vzdálené předávání portů je opakem místního předávání portů. Přesměruje port z hostitele serveru na hostitele klienta a poté na port cílového hostitele.

-R volba říká ssh pro vytvoření vzdáleného přesměrování portů:

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Dynamické přesměrování portů #

Dynamické předávání portů vytváří proxy server SOCKS, který umožňuje komunikaci přes řadu portů.

Chcete-li vytvořit dynamické přesměrování portů (SOCKS), předejte -D možnost pro klienta ssh:

ssh -D [LOCAL_IP:]LOCAL_PORT  -N -f username@hostname

Podrobnější informace a podrobné pokyny najdete v článku Jak nastavit SSH Tunneling (Přesměrování portů).

Závěr č.

Chcete-li se připojit ke vzdálenému serveru přes SSH, použijte ssh příkaz následovaný vzdáleným uživatelským jménem a názvem hostitele (ssh username@hostname ).

Vědět, jak používat ssh je nezbytný pro správu vzdálených serverů.

Pokud máte nějaké dotazy, zanechte prosím níže komentář.


Linux
  1. Linuxový příkaz mv

  2. Předávání proměnných ve vzdáleném příkazu ssh

  3. linux spustit příkaz vzdáleně

  1. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  2. Ssh způsobí, že se smyčka zastaví?

  3. Skupina DH GEX je mimo dosah

  1. Speciální znak „#“ v příkazu Perl Ssh?

  2. Oring s True In A Command Over Ssh?

  3. Ssh na více hostitelů a spustit příkaz?