GNU/Linux >> Znalost Linux >  >> Linux

Průvodce pro začátečníky SSH pro vzdálené připojení v systému Linux

Jednou z nejatraktivnějších funkcí Linuxu je schopnost dovedně používat počítač pouze pomocí příkazů zadávaných do klávesnice – a ještě lépe, umět to dělat na počítačích kdekoli na světě. Díky OpenSSH mohou uživatelé POSIX otevřít zabezpečený shell na jakémkoli počítači, ke kterému mají oprávnění přistupovat, a používat jej ze vzdáleného umístění. Pro mnoho uživatelů Linuxu je to každodenní úkol, ale pro někoho, kdo to ještě nezkusil, může být matoucí. Tento článek vysvětluje, jak nakonfigurovat dva počítače pro zabezpečené připojení shell (SSH) a jak se bezpečně připojit z jednoho k druhému bez hesla.

Terminologie

Při diskusi o více než jednom počítači může být matoucí identifikovat jeden od druhého. Komunita IT má dobře zavedené termíny, které pomáhají objasnit popis procesu propojení počítačů dohromady.

  • Služba: Služba je software, který běží na pozadí, takže jej mohou používat jiné počítače, než na kterém je nainstalována. Webový server například hostí službu pro sdílení webu . Tento termín naznačuje (ale netrvá na tom), že se jedná o software bez grafického rozhraní.
  • Hostitel: Hostitel je jakýkoli počítač. V IT se počítačům říká hostitel protože technicky může každý počítač hostit aplikaci, která je užitečná pro jiný počítač. Svůj notebook možná nepovažujete za „hostitele“, ale pravděpodobně provozujete nějakou službu, která je užitečná pro vás, váš mobil nebo jiný počítač.
  • Místní: Místní počítač je ten, který používáte vy nebo nějaký software. Každý počítač se označuje jako localhost , například.
  • Vzdálené: Vzdálený počítač je počítač, před kterým nejste fyzicky před námi, ani jej fyzicky nepoužíváte. Je to počítač v vzdáleném umístění.

Nyní, když je terminologie vyřešena, můžete začít.

Aktivovat SSH na každém hostiteli

Aby byly dva počítače připojeny přes SSH, musí mít každý hostitel nainstalován SSH. SSH má dvě součásti:příkaz, který používáte na místním počítači ke spuštění připojení, a server přijímat příchozí požadavky na připojení. Některé počítače se dodávají s jednou nebo oběma částmi SSH již nainstalovanými. Příkazy se liší v závislosti na vašem systému, aby bylo možné ověřit, zda máte nainstalovaný příkaz i server, takže nejjednodušší metodou je vyhledat příslušné konfigurační soubory:

$ file /etc/ssh/ssh_config
/etc/ssh/ssh_config: ASCII text

Pokud by to vrátilo No such file or directory chyba, pak nemáte nainstalovaný příkaz SSH.

Proveďte podobnou kontrolu pro službu SSH (všimněte si d v názvu souboru):

$ file /etc/ssh/sshd_config
/etc/ssh/sshd_config: ASCII text

Nainstalujte jeden nebo druhý podle potřeby:

$ sudo dnf install openssh-clients openssh-server

Na vzdáleném počítači povolte službu SSH pomocí systemd:

$ sudo systemctl enable --now sshd

Případně můžete povolit službu SSH v Nastavení systému v GNOME nebo Předvolbách systému na macOS. Na ploše GNOME se nachází v části Sdílení panel:

Spuštění zabezpečeného prostředí

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Nyní, když jste na vzdáleném počítači nainstalovali a povolili SSH, můžete se zkusit přihlásit pomocí hesla. Pro přístup ke vzdálenému počítači musíte mít uživatelský účet a heslo.

Váš vzdálený uživatel nemusí být stejný jako váš místní uživatel. Můžete se přihlásit jako libovolný uživatel na vzdáleném počítači, pokud máte heslo tohoto uživatele. Například jsem sethkenlon na mém pracovním počítači, ale jsem seth na mém osobním počítači. Pokud jsem na svém osobním počítači (což je můj aktuální místní počítač) a chci do svého pracovního počítače použít SSH, mohu to udělat tak, že se identifikuji jako sethkenlon a pomocí mého pracovního hesla.

Chcete-li SSH do vzdáleného počítače, musíte znát jeho adresu internetového protokolu (IP) nebo jeho rozlišitelný název hostitele. Chcete-li zjistit IP adresu vzdáleného počítače, použijte ip příkaz (na vzdáleném počítači):

$ ip addr show | grep "inet "
inet 127.0.0.1/8 scope host lo
inet 10.1.1.5/27 brd 10.1.1.31 [...]

Pokud vzdálený počítač nemá ip zkuste ifconfig místo toho (nebo dokonce ipconfig v systému Windows).

Adresa 127.0.0.1 je speciální a je to ve skutečnosti adresa localhost . Je to "loopback" adresa, kterou váš systém používá k dosažení sebe sama. To není užitečné při přihlašování ke vzdálenému počítači, takže v tomto příkladu je správná IP adresa vzdáleného počítače 10.1.1.5. V reálném životě bych to věděl, protože moje místní síť používá podsíť 10.1.1.0. Pokud je vzdálený počítač v jiné síti, pak IP adresa může být téměř jakákoliv (nikdy však 127.0.0.1) a k dosažení přes různé firewally je pravděpodobně nutné nějaké speciální směrování. Předpokládejme, že váš vzdálený počítač je ve stejné síti, ale pokud chcete dosáhnout vzdálenějších počítačů, než je vaše vlastní síť, přečtěte si můj článek o otevírání portů ve vaší bráně firewall.

Pokud můžete pingnout vzdálený počítač podle jeho IP adresy nebo jeho název hostitele a mít na něm přihlašovací účet, pak do něj můžete SSH:

$ ping -c1 10.1.1.5
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.
64 bytes from 10.1.1.5: icmp_seq=1 ttl=64 time=4.66 ms
$ ping -c1 akiton.local
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.

To je úspěch. Nyní se přihlaste pomocí SSH:

$ whoami
seth
$ ssh [email protected]
bash$ whoami
sethkenlon

Testovací přihlášení funguje, takže nyní jste připraveni aktivovat přihlašování bez hesla.

Vytvořte klíč SSH

Chcete-li se bezpečně přihlásit k jinému počítači bez hesla, musíte mít klíč SSH. Klíč SSH již možná máte, ale neuškodí vytvořit si nový. Klíč SSH začíná na vašem místním počítači. Skládá se ze dvou součástí:soukromého klíče, který nikdy s nikým a ničím nesdílíte, a veřejného klíče, který zkopírujete na jakýkoli vzdálený počítač, ke kterému chcete mít přístup bez hesla.

Někteří lidé vytvoří jeden klíč SSH a používají ho pro vše od vzdáleného přihlášení až po ověřování GitLab. Pro různé skupiny úkolů však používám různé klíče. Například používám jeden klíč doma k autentizaci na místních počítačích, jiný klíč k autentizaci na webových serverech, které spravuji, samostatný pro hostitele Git, další pro úložiště Git, která hostuji, a tak dále. V tomto příkladu vytvořím jedinečný klíč pro použití v počítačích v rámci mé místní sítě.

Chcete-li vytvořit nový klíč SSH, použijte ssh-keygen příkaz:

$ ssh-keygen -t ed25519 -f ~/.ssh/lan

-t volba znamená type a zajišťuje, že šifrování použité pro klíč je vyšší než výchozí. -f volba znamená soubor a nastaví název souboru klíče a umístění. Budete vyzváni k vytvoření hesla pro váš klíč SSH. Měli byste vytvořit heslo pro klíč. To znamená, že při použití klíče budete muset zadat heslo, ale toto heslo zůstává místní a nepřenáší se po síti. Po spuštění tohoto příkazu vám zůstane soukromý klíč SSH s názvem lan a veřejný klíč SSH s názvem lan.pub .

Chcete-li získat veřejný klíč na váš vzdálený počítač, použijte ssh-copy-id . Aby to fungovalo, musíte ověřit, že máte ke vzdálenému počítači přístup SSH. Pokud se nemůžete přihlásit ke vzdálenému hostiteli pomocí hesla, nemůžete nastavit ani přihlašování bez hesla:

$ ssh-copy-id -i ~/.ssh/lan.pub [email protected]

Během tohoto procesu budete vyzváni k zadání přihlašovacího hesla na vzdáleném hostiteli.

Po úspěchu se zkuste znovu přihlásit, ale tentokrát pomocí -i možnost nasměrovat příkaz SSH na příslušný klíč (lan , v tomto příkladu):

$ ssh -i ~/.ssh/lan [email protected]
bash$ whoami
sethkenlon

Opakujte tento postup pro všechny počítače ve vaší síti a budete moci procházet každým hostitelem, aniž byste museli znovu přemýšlet o heslech. Ve skutečnosti, jakmile máte nastaveno ověřování bez hesla, můžete upravit /etc/ssh/sshd_config soubor zakázat ověřování hesla. To zabrání komukoli v používání SSH k ověření k počítači, pokud nemá váš soukromý klíč. Chcete-li to provést, otevřete /etc/ssh/sshd_config v textovém editoru pomocí sudo oprávnění a vyhledejte řetězec PasswordAuthentication . Změňte výchozí řádek na tento:

PasswordAuthentication no

Uložte jej a restartujte server SSH (nebo pouze restartujte):

$ sudo systemctl restart sshd && echo "OK"
OK
$

Používání SSH každý den

OpenSSH změní váš pohled na výpočetní techniku. Už nejste vázáni pouze na počítač před vámi. S SSH máte přístup k jakémukoli počítači ve vaší domácnosti nebo serverům, na kterých máte účty, a dokonce i k mobilním zařízením a zařízením pro internet věcí. Odemknutím výkonu SSH se také odemkne výkon linuxového terminálu. Pokud nepoužíváte SSH každý den, začněte hned. Udělejte si s tím pohodlí, seberte klíče, žijte bezpečněji a rozšiřte svůj svět.


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Co je Linux? Průvodce pro netechnické uživatele

  3. Jak ukončit nereagující připojení SSH v linuxu?

  1. Co je CentOS – průvodce pro začátečníky

  2. 5 nejlepších aplikací pro vzdálenou plochu pro Linux

  3. SSH připojení přes reverzní (vzdálený) SSH tunel

  1. Příručka pro začátečníky k instalaci Pop!_OS Linux

  2. Kompletní průvodce pro použití AsciiDoc v Linuxu

  3. Jak přidat vzdálené připojení MySQL v linuxu?