SSH
Co je SSH
Zkratka SSH pochází s anglického sousloví Secure Shell. Jde o bezpečnou (šifrovanou) komunikaci mezi dvěma počítači.
Jak SSH funguje
Připojení SSH se děje pomocí modelu klient-server. To znamená, že aby mohlo být navázáno spojení SSH, musí být na vzdáleném počítači spuštěn software nazývaný démon SSH. Tento software naslouchá připojení na určitém síťovém portu, ověřuje požadavky na připojení a pokud uživatel zadá správné pověření, vytvoří příslušné prostředí.
V počítači uživatele musí být klient SSH. Jedná se o software, který umí komunikovat pomocí protokolu SSH a jemuž lze předat informace o vzdáleném hostiteli, ke kterému se má připojit. Uživatelské jméno které má použít a pověření, která mají být předána k ověření. Klient může také zadat určité podrobnosti o typu připojení, které chce navázat.
Jak SSH ověřuje uživatele
Pomocí hesla
Přihlašování heslem je šifrované a pro nové uživatele je snadno pochopitelné. Automatizovaní boti a zlomyslní uživatelé se však často opakovaně pokoušejí dostat k účtům, které umožňují přihlášení pomocí hesla, což může vést k ohrožení bezpečnosti. Z tohoto důvodu doporučováno u většiny konfigurací vždy nastavit ověřování pomocí klíčů SSH.
Pomocí SSH klíčů
Klíče SSH jsou odpovídající sadou kryptografických klíčů, které lze použít k ověřování. Každá sada obsahuje veřejný a soukromý klíč. Veřejný klíč lze bez obav volně sdílet, zatímco soukromý klíč je třeba bedlivě střežit a nikdy ho nikomu nevystavovat.
Pro ověření pomocí klíčů SSH musí mít uživatel na svém místním počítači dvojici klíčů SSH. Na vzdáleném serveru musí být veřejný klíč zkopírován do souboru v domovském adresáři uživatele na adrese ~/.ssh/authorized_keys. Tento soubor obsahuje seznam veřejných klíčů po jednom na řádku, které jsou autorizovány pro přihlášení k tomuto účtu.
Když se klient připojí k hostiteli a chce použít ověřování pomocí klíčů SSH, informuje o tomto záměru server a sdělí mu, který veřejný klíč má použít. Server pak zkontroluje svůj soubor authorized_keys, zda neobsahuje veřejný klíč, vygeneruje náhodný řetězec a zašifruje jej pomocí veřejného klíče. Tuto zašifrovanou zprávu lze dešifrovat pouze pomocí přidruženého soukromého klíče. Server odešle tuto zašifrovanou zprávu klientovi, aby otestoval, zda má skutečně přidružený soukromý klíč.
Po přijetí této zprávy ji klient dešifruje pomocí soukromého klíče a zkombinuje odhalený náhodný řetězec s dříve vyjednaným ID relace. Poté z této hodnoty vygeneruje hash MD5 a odešle jej zpět na server. Server již měl k dispozici původní zprávu a ID relace, takže může porovnat hash MD5 vygenerovaný z těchto hodnot a určit, zda klient má soukromý klíč.
Vygenerování páru klíčů SSH
ssh-keygen -b 4096
ssh-keygen -o -a 100 -t ed25519 -C "Test" -f ~/.ssh/test
Zobrazení otisku klíče SSH
ssh-keygen -l
Zkopírování veřejného klíče na server
ssh-copy-id username@remote_host
ssh-copy-id -i ~/.ssh/test username@remote_host
Kopírování souborů pomocí scp
Kopírování z lokálního PC na Server
scp <options> <files_or_directories> user@target_host:/<folder>
Kopírování ze serveru na lokální PC
scp <options> user@target_host:/files <folder_local_system>
Konfigurace nastavení SSH klienta
vi ~/.ssh/config
-----
#~/.ssh/config
Host remote_alias
HostName remote_host
Port port_num
IdentityFile path/ssh_priv