GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte SSH spojení mezi Windows a Linuxem

Secure Shell Protocol (SSH) je nejběžnější metodou pro ovládání vzdálených strojů přes příkazový řádek ve světě Linuxu. SSH je skutečný linuxový originál a získává na popularitě i ve světě Windows. Existuje dokonce oficiální dokumentace Windows pro SSH, která pokrývá ovládání počítačů s Windows pomocí OpenSSH.

Tento článek popisuje, jak vytvořit připojení SSH z počítače se systémem Windows k systému Fedora 33 Linux pomocí oblíbeného open source nástroje PuTTY.

Způsoby použití SSH

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

SSH používá architekturu klient-server, kde klient SSH naváže spojení se serverem SSH. SSH server obvykle běží jako systémový démon, takže se často nazývá SSHD. Jen stěží najdete distribuci Linuxu, která by nepřicházela s démonem SSH. Ve Fedoře 33 je démon SSH nainstalován, ale není aktivován.

Pomocí SSH můžete ovládat téměř jakýkoli počítač se systémem Linux, ať už běží jako virtuální počítač nebo jako fyzické zařízení ve vaší síti. Častým případem použití je bezhlavá konfigurace embedded zařízení, včetně Raspberry Pi. SSH lze také použít k tunelování dalších síťových služeb. Protože je provoz SSH šifrován, můžete SSH použít jako transportní vrstvu pro jakýkoli protokol, který ve výchozím nastavení neposkytuje šifrování.

V tomto článku vysvětlím čtyři způsoby použití SSH:1. jak nakonfigurovat démona SSH na straně Linuxu, 2. jak nastavit připojení ke vzdálené konzoli, 3. jak kopírovat soubory přes síť, a 4. .jak tunelovat určitý protokol přes SSH.

1. Nakonfigurujte SSHD

Systém Linux (v mém případě Fedora 33) funguje jako SSH server, který umožňuje připojení klienta PuTTY SSH. Nejprve zkontrolujte konfiguraci SSH démona. Konfigurační soubor se nachází na adrese /etc/ssh/sshd_config a obsahuje spoustu přepínačů, které lze aktivovat zakomentováním souvisejících řádků:

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Include /etc/ssh/sshd_config.d/*.conf

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Výchozí konfigurace, kde není žádný řádek bez komentáře, by měla v tomto příkladu fungovat. Zkontrolujte, zda démon SSH již běží, zadáním systemctl status sshd :

$ systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 577 (sshd)
    Tasks: 1 (limit: 26213)
   CGroup: /system.slice/sshd.service
           └─577 /usr/sbin/sshd -D [email protected],chacha20-[...]

Pokud je neaktivní, spusťte jej pomocí systemctl start sshd příkaz.

2. Nastavte vzdálenou konzoli

V systému Windows si stáhněte instalační program PuTTY, poté jej nainstalujte a otevřete. Měli byste vidět okno jako toto:

V části Název hostitele (nebo adresa IP) do vstupního pole zadejte informace o připojení pro váš systém Linux. V tomto příkladu jsem nastavil virtuální stroj Fedora 33 s přemostěným síťovým adaptérem, který mohu použít ke kontaktování systému na IP adrese 192.168.1.60 . Klikněte na Otevřít a mělo by se otevřít okno jako toto:

Toto je bezpečnostní mechanismus SSH, který má zabránit útoku typu man-in-the-middle. Otisk ve zprávě by se měl shodovat s klíčem v systému Linux na adrese /etc/ssh/ssh_host_ed25519_key.pub. . PuTTY vytiskne klíč jako hash MD5. Chcete-li zkontrolovat jeho pravost, přepněte na systém Linux, otevřete příkazový shell a zadejte:

ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub

Výstup by měl odpovídat otisku prstu zobrazenému PuTTY:

$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub
256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519)

Potvrďte bezpečnostní upozornění PuTTY kliknutím na Ano . Otisk hostitelského systému je nyní v seznamu důvěryhodných PuTTY, který se nachází v registru Windows pod:

HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys

Zadejte své správné přihlašovací údaje a měli byste být na konzole ve svém domovském adresáři:

3. Kopírování souborů přes síť

Kromě vzdálené konzole můžete použít PuTTY k přenosu souborů přes SSH. Podívejte se do instalační složky pod C:\\Program Files (x86)\\PuTTY a najděte pscp.exe . Toto můžete použít ke kopírování souborů do a ze systému Linux.

Otevřete příkazový řádek pomocí Windows + R a zadejte cmd . Zkopírujte soubor MyFile.txt z domovského adresáře uživatele systému Linux do domovského adresáře systému Windows zadáním:

C:\"Program Files (x86)"\PuTTY\pscp.exe [email protected]:/home/stephan/MyFile.txt .

Chcete-li zkopírovat soubor z domovského adresáře Windows do domovského adresáře uživatele Linuxu, zadejte:

C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt [email protected]:/home/stephan/

Jak jste již možná zjistili, obecná struktura příkazu copy je:

pscp.exe <source> <target>

4. Vytunelovat protokol

Představte si, že máte počítač s Linuxem, na kterém běží služba založená na HTTP pro nějakou libovolnou aplikaci. Chcete přistupovat k této službě HTTP ze svého počítače se systémem Windows přes internet. Související port TCP samozřejmě nemůžete zpřístupnit veřejnosti, protože:

  1. Na serveru běží HTTP, nikoli HTTPS
  2. Neexistuje žádná správa uživatelů ani přihlášení

Na první pohled to vypadá jako nemožný úkol nastavit tuto architekturu, aniž by došlo k příšerné bezpečnostní chybě. Ale SSH umožňuje relativně snadno nastavit bezpečné řešení pro tento scénář.

Tento postup předvedu na svém softwarovém projektu Pythonic. Pythonic běží jako kontejner a zpřístupňuje dva TCP porty:TCP port 7000 (hlavní editor) a TCP port 8000 (editor zdrojového kódu kódového serveru).

Chcete-li nainstalovat Pythonic na počítač se systémem Linux, spusťte:

podman pull pythonicautomation/pythonic
podman run -d -p 7000:7000 -p 8000:8000 pythonic

Přepněte na počítač se systémem Windows, otevřete PuTTY a přejděte na Připojení -> SSH -> Tunely . Přidejte dva porty TCP, které chcete přesměrovat:

  • Zdroj:7000 / Cíl:localhost:7000
  • Zdroj:8000 / Cíl:localhost:8000

Poté se vraťte do Relace a vytvořte připojení SSH jako předtím. Otevřete prohlížeč a přejděte na http://localhost:7000; měli byste vidět tuto obrazovku:

Úspěšně jste nakonfigurovali přesměrování portů!

Upozornění :Pokud zpřístupníte TCP Port 22 veřejnosti, nepoužívejte snadno uhodnutelné přihlašovací údaje. Budete dostávat pokusy o přihlášení z celého světa, které se pokusí získat přístup k vašemu počítači se systémem Linux pomocí běžných standardních přihlašovacích údajů. Místo toho povolte přihlášení pouze známým klientům. Tohoto omezení přihlášení lze dosáhnout pomocí kryptografie veřejného klíče, která používá pár klíčů, ve kterém je veřejný klíč uložen na hostitelském počítači SSH a soukromý klíč zůstává u klienta.

Ladění

Pokud se snažíte připojit k počítači se systémem Linux, můžete sledovat procesy ve svém démonu SSH pomocí:

journalctl -f -u sshd

Takto vypadá běžný proces přihlášení s LogLevel DEBUG:

Další informace

Tento článek sotva poškrábal povrch o způsobech použití SSH. Pokud hledáte informace o konkrétním případu použití, pravděpodobně je najdete mezi tunami SSH tutoriálů na internetu. PuTTY používám hodně v práci, protože jeho snadná konfigurace a dobrá interoperabilita mezi operačními systémy z něj dělají nástroj švýcarského nože pro řešení konektivity.


Linux
  1. Interoperabilita Windows a Linuxu:Pohled na Sambu

  2. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  3. 11 Užitečné příkazy „ssh“ a „scp“ v Linuxu

  1. Jak nakonfigurovat server SAMBA a přenášet soubory mezi Linuxem a Windows

  2. Rozdíl mezi GNUWin32 a cygwin

  3. Jak nastavit Wifi-Direct připojení mezi Androidem a Linuxem

  1. Sdílejte soubory mezi počítači se systémem Linux a Windows

  2. Windows – sdílená složka mezi hostem Qemu Windows a hostitelem Linuxu?

  3. Rozdíl mezi příkazy 'ifconfig' a ​​'ip'