GNU/Linux >> Znalost Linux >  >> Linux

Příkazy SSH v Linuxu s příklady použití

SSH je síťový protokol pro bezpečné přihlášení ke vzdálenému počítači a provádění příkazů. Je navržen a vytvořen tak, aby poskytoval nejlepší zabezpečení při vzdáleném přístupu k jinému počítači. Kdykoli jsou data odeslána počítačem do sítě, ssh je automaticky zašifruje.

Chcete-li použít SSH, cílový počítač by měl mít nainstalovanou serverovou aplikaci SSH, protože SSH je model klient-server. Server SSH ve výchozím nastavení naslouchá na standardním portu TCP 22. Klient SSH je standardně dostupný ve všech distribucích Linuxu.

V tomto tutoriálu se naučíme Příkazy SSH v Linuxu s příklady použití.

Předpoklady

  • Klient SSH
  • Server SSH
  • IP adresa nebo název vzdáleného serveru

1. Jak SSH na vzdálený server

Vzdálený server je připojen pomocí IP adresy nebo názvu hostitele. Pro připojení ssh pomocí IP adresy použijte následující příkaz:

ssh [ IP ADDRESS]

Chcete-li se připojit k ssh pomocí názvu, použijte následující příkaz:

ssh [ HOSTNAME ]

Například pro připojení ke vzdálenému hostiteli pomocí adresy IP 192.168.239.133 bude příkaz následující.

$ ssh 192.168.239.133

Při prvním připojení k hostiteli se zobrazí zpráva s dotazem, zda chcete pokračovat v připojení. Zadejte ano a poté zadejte heslo pro vzdáleného hostitele.

2. SSH s uživatelským jménem

SSH používá při pokusu o připojení aktuálního uživatele vzdáleného serveru. Chcete-li se připojit k ssh pomocí uživatelského jména, použijte následující syntaxi.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Chcete-li se například připojit ke vzdálenému hostiteli s adresou IP 192.168.239.134 s uživatelským jménem kali, použijte následující příkaz.

$ ssh [email protected]

3. SSH s jiným číslem portu

Server SSH standardně naslouchá TCP portu 22, ale pokud jej chcete změnit, musíte port zadat v příkazu.

Chcete-li se připojit ke vzdálenému hostiteli pomocí jiného čísla portu, použijte parametr -p, jak je znázorněno v následující syntaxi.

ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]

Chcete-li se například připojit ke vzdálenému hostiteli s adresou IP 192.168.239.134 pomocí portu číslo 223, použijte následující příkaz.

$ ssh 192.168.239.134 -p 223

4. SSH bez hesla

Ve třech jednoduchých krocích se můžete připojit ke vzdálenému hostiteli pomocí ssh bez hesla. Tři kroky potřebné k přihlášení ke vzdálenému serveru bez zadání hesla jsou následující.

Vygenerujte klíč SSH

Pro generování klíčů SSH se používá ssh-keygen, který vytváří veřejný a soukromý klíč. Tyto páry klíčů se používají k ověřování mezi klienty a servery.

Chcete-li vytvořit pár klíčů, zadejte na klientském počítači následující příkaz.

$ ssh-keygen -t rsa

Zadejte umístění a parafrázi, nebo stiskněte enter pro použití výchozího nastavení.

Zkopírujte veřejný klíč SSH

Chcete-li použít pár klíčů, musíte zkopírovat veřejný klíč SSH na vzdálený server. Chcete-li zkopírovat veřejný klíč SSH na vzdálený server, použijte na hostitelském počítači následující syntaxi.

ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]

Chcete-li zkopírovat klíč SSH z adresy IP 192.168.239.134, použijte následující příkaz.

$ ssh-copy-id [email protected]

Přihlaste se vzdáleně bez hesla

Nyní se můžete přihlásit ke vzdálenému serveru bez hesla pomocí následujícího příkazu.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Chcete-li se například připojit ke vzdálenému hostiteli s adresou IP 192.168.239.134 s uživatelským jménem kali, použijte následující příkaz.

$ ssh [email protected]

5. Spusťte příkaz na vzdáleném serveru pomocí SSH

Příkaz ssh lze použít k přihlášení ke vzdálenému serveru. Lze jej také použít k provádění příkazů na vzdáleném serveru.

Základní syntaxe pro provádění příkazů přes ssh je následující.

ssh USER1@SERVER1 COMMAND1

ssh USER1@SERVER1 'COMMAND2'

ssh USER1@SERVER1 'COMMAND1 | COMMAND2'

ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"

Chcete-li získat datum a čas vzdáleného serveru, použijte následující syntaxi:

ssh USER1@SERVER1 date

Chcete-li například získat datum uživatele kali ze serveru s IP adresou 192.168.239.134, použijte následující příkaz.

$ ssh [email protected] date

Chcete-li zkontrolovat využití místa na disku vzdáleného serveru, syntaxe je následující.

ssh USER1@SERVER1 'df -H'

Chcete-li například zjistit využití místa na disku uživatelem kali ze serveru s IP adresou 192.168.239.134, použijte následující příkaz.

$ ssh [email protected] 'df -H'

Chcete-li zkontrolovat protokoly posledního restartu vzdáleného uživatele, použijte následující syntaxi.

ssh USER1@SERVER1 "last reboot"

Chcete-li například získat poslední protokoly restartu uživatelů kali ze serveru s IP adresou 192.168.239.134, použijte následující příkaz.

$ ssh [email protected] "last reboot"

Možnosti příkazového řádku SSH

Podívejme se na některé možnosti dostupné pomocí příkazu ssh.

ssh -C

Použijte volbu -C s ssh k požadavku na kompresi všech dat přijatých nebo přenesených ze vzdáleného serveru, jak je vidět v následující syntaxi.

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

Například

$ ssh -C [email protected]

ssh -v

Volba -v se používá s příkazem ssh k ladění klienta ssh. Následuje syntaxe:

$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]

Například

$ ssh -v [email protected]

ssh -b

Volba -b se používá k navázání adresy IP na připojení SSH. IP adresa bude použita jako zdrojová adresa SSH připojení. To se používá, když má klient více než dvě adresy IP a možná nevíte, která adresa IP se používá k vytvoření připojení k serveru SSH.

Například

$ ssh -b 192.168.239.133 [email protected]

Příkaz naváže IP adresu na vzdálený server. Můžeme to zkontrolovat pomocí netstat |grep ssh příkaz ke kontrole připojení.

ssh -F

Volba -F se používá spolu s příkazem ssh k určení konfigurace pro uživatele. Výchozí konfigurační soubor je ~/.ssh/config.

Chcete-li použít konkrétní konfigurační soubor, použijte volbu -F následujícím způsobem.

$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]

Například

$ ssh -F /etc/ssh/ssh_config.d [email protected]

ssh -L

Volba -L se používá pro místní přesměrování portů. Místní přesměrování portů nám umožňuje směrovat provoz z našeho hostitele do cílového portu přes proxy.

Základní syntaxe pro místní přesměrování portů je následující.

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Například spusťte následující příkaz pro připojení ke vzdálenému hostiteli na portu 3306 uživatele kali s IP 192.168.239.134 z localhost 192.168.239.133 na portu 3336.

$  ssh -L 3336:192.168.239.133:3306 [email protected]

ssh -R

Volba -R se používá spolu s příkazem SSH k povolení vzdáleného předávání portů. To znamená, že můžete přesměrovat port na vzdáleném serveru na port na vašem místním počítači, který je pak přesměrován na port na cílovém počítači.

Základní syntaxe pro vzdálené předávání portů je následující.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Například

$ ssh -R 3336:192.168.239.133:3000 [email protected]

Příkaz zajistí, aby ssh naslouchal ssh serveru na portu 3336 a tuneloval veškerý provoz na port 3000.

ssh -C -D

Volba -D umožňuje dynamické přesměrování portů. Obvyklý port SOCKS je 1001, lze však použít libovolné číslo portu; nicméně některé programy budou fungovat pouze na portu 1001.

Základní syntaxe dynamického předávání je následující.

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Například

$ sudo ssh -C -D 1001 [email protected] 

-D určuje dynamické předávání portů na portu 1001 a -C umožňuje kompresi.

ssh -X

Volba -X se používá spolu s ssh pro předávání X11. Následuje syntaxe pro předávání X11.

ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]

Pomocí následujícího příkazu povolte předávání X11 uživateli kali s IP adresou 192.168.239.134.

$ ssh -X 192.168.239.134

ssh -Y

Volba -Y se používá spolu s ssh pro předávání Trusted X11. To znamená, že vzdálený X11 bude mít plný přístup k původnímu displeji X11.

ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]

Pomocí následujícího příkazu povolte předávání Trusted X11 uživateli kali s IP adresou 192.168.239.134.

$ ssh -Y 192.168.239.134

ssh -o

Volbu -o lze použít s dalšími volbami.

Například

$ ssh -o "batchmode=yes" [email protected]

Pokud použijete ssh -o "batchmode=yes", příkaz bude úspěšně spuštěn na vzdáleném počítači, pokud je povoleno připojení bez hesla, jinak vrátí chybu.

Některé z nejdůležitějších možností příkazového řádku jsou uvedeny v následující tabulce.

Možnost Popis
-A Umožňuje předávání připojení ověřovacího agenta.
-a Zakáže předávání připojení ověřovacího agenta.
-b Používá se k navázání zdrojových adres.
-C Používá se pro kompresi dat.
-c cipher_spec Vybere specifikaci šifry pro šifrování relace.
-D Zodpovídá za dynamické přesměrování portů na úrovni aplikace.
-E log_file Přidává protokoly ladění do log_file namísto standardní chyby.
-F konfigurační soubor Uvádí konfigurační soubor pro uživatele.
-g Umožňuje vzdáleným hostitelům připojit se k místním předávaným portům.
-i soubor identity Přečte soukromý klíč pro ověření veřejného klíče.
-j Specifikuje konfigurační direktivu ProxyJump.
-l přihlašovací_jméno Uvádí uživatele, který se má přihlásit ke vzdálenému počítači.
-p port Slouží k určení portu pro připojení ke vzdálenému hostiteli.
-q Je to tichý režim.
-V Režim s podrobnostmi.
-X Umožňuje předávání X11
-Y Povoluje předávání Trusted X11

Závěr

V tomto tutoriálu jsme se naučili používat příkaz ssh spolu s užitečnými příklady. Děkujeme za přečtení, poskytněte prosím svůj názor a návrhy v sekci komentářů níže.


Linux
  1. Odesílejte příkazy do více relací SSH pomocí Terminátora

  2. 10+ Linux VI příkazy s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. 19 Běžné příkazy SSH v Linuxu s příklady

  3. Cheat Sheet pro příkazy Linuxu:S příklady

  1. Příkaz Netstat v Linuxu - 28 příkazů s příklady

  2. Jak spouštět příkazy Linuxu na vzdáleném systému přes SSH

  3. Naučte se příkazy Git s praktickými příklady na Linuxu – část 1