Pokud pracujete na vzdálených Linuxových serverech (nebo kontejnerech), můžete předpokládat, že je to podstatně bezpečné. Bohužel, toto je omyl. I když Secure Shell je bezpečnější než starší řešení typu Telnet, stále je potřeba podniknout další kroky, aby byla zajištěna bezpečnost vašich systémů a dat.

Ve výchozím nastavení Secure Shell funguje na základě uživatelského jména a hesla. Pokud tedy použijete příkaz ssh [email protected], budete vyzváni k zadání hesla uživatele „ralph“ na serveru „example.com“.

Existuje však lepší způsob, který je méně náchylný k útokům na server. Tímto způsobem je autentizace klíčem SSH.

Autentizace klíčem SSH funguje na základě páru klíčů generovaných na vašem lokálním počítači. Pár klíčů se skládá z privátního klíče a veřejného klíče. Privátní klíč zůstává v bezpečí na vašem lokálním počítači, zatímco veřejný klíč je odeslán na server, ke kterému chcete získat vzdálený přístup. Když jsou klíče nakonfigurovány, pokaždé, když se přihlašujete na server, jsou klíče rozpoznávány a kontrolováno, zda se shodují. Pokud se klíče shodují, získáte přístup k serveru. Pokud se klíče neshodují, nemáte štěstí.

Toto řešení je podstatně bezpečnější než tradiční autentizace na základě uživatelského jména a hesla a mělo by být používáno pro jakýkoli Linuxový server, který používáte.

Ukážu vám, jak implementovat autentizaci klíčem SSH.

Co budete potřebovat?

Pro provedení této demonstrace budete potřebovat minimálně dva Linuxové počítače – jeden místní a jeden vzdálený. Vzhledem k tomu, že se vše děje prostřednictvím příkazové řádky, nemusíte nastavovat grafické prostředí. Samozřejmě budete potřebovat IP adresu nebo doménu vzdáleného serveru a místní počítač musí být schopen se vzdáleně připojit k vzdálenému serveru.

Vygenerujte si pár klíčů SSH

První věc, kterou musíte udělat, je generovat si svůj pár klíčů SSH. Udělejte to na svém lokálním počítači. Přihlaste se na stroj a vytvořte si pár klíčů pomocí příkazu:

ssh-keygen

Budete vyzváni, kam chcete klíč uložit (výchozí umístění je ~/.ssh) a budete muset zadat a potvrdit heslo pro pár klíčů. Ujistěte se, že používáte silné/unikátní heslo.

Výše uvedený příkaz vygeneruje dvě soubory: id_rsa (privátní klíč) a id_rsa.pub (veřejný klíč).

Zkopírujte klíč na vzdálený počítač

Dalším krokem je zkopírovat veřejný klíč na vzdálený počítač. Naštěstí SSH obsahuje vestavěnou funkci, která tento úkol usnadňuje. Pro zkopírování klíče jednoduše spusťte následující příkaz:

ssh-copy-id USER@SERVER

Kde USER je vaše uživatelské jméno v Linuxu a SERVER je IP adresa nebo doména vzdáleného serveru. Budete vyzváni k zadání SSH hesla pro vzdáleného uživatele. Po úspěšné autentizaci bude veřejný klíč uložen ve složce ~/.ssh na vzdáleném serveru.

Můžete pak vyzkoušet autentizaci klíčem SSH tím, že se pokusíte znovu přihlásit na vzdálený počítač pomocí příkazu:

ssh USER@SERVER

Kde USER je uživatelské jméno a SERVER je IP adresa nebo doména vzdáleného serveru. Tentokrát budete vyzváni k zadání hesla klíče SSH (ne svého uživatelského hesla).

Gratulace, autentizace klíčem SSH funguje!

Ale můžeme zvýšit zabezpečení ještě více.

Nastavte SSH server pro vyšší zabezpečení

Před pokračováním v tomto kroku se ujistěte, že jste vytvořili klíčové páry a zkopírovali veřejný klíč na server na všechny klientní počítače, které potřebují přístup k vzdálenému serveru. Pokud tak neučiníte, zjistíte, že tyto počítače nebudou mít možnost se přihlásit (i s odpovídajícími uživatelskými účty). Jediným způsobem, jak obejít tuto situaci, je ruční kopírování obsahu veřejného klíče SSH z klientního počítače do souboru ~/.ssh/authorized_keys na serveru.

Náš další krok je povolit autentizaci veřejným klíčem a zakázat autentizaci heslem (na vzdáleném serveru).

Otevřete konfigurační soubor SSH démona (na vzdáleném serveru) pomocí příkazu:

sudo nano /etc/ssh/sshd_config

Nejprve najděte řádek:

# PubkeyAuthentication yes

Tento řádek změňte na:

PubkeyAuthentication yes

Poté najděte řádek:

# PasswordAuthentication yes

Tento řádek změňte na:

PasswordAuthentication no

Uložte a zavřete soubor.

Restartujte SSH pomocí příkazu:

sudo systemctl restart sshd

Před ukončením současného připojení otevřete nové okno terminálu (na počítači, na který jste zkopírovali veřejný klíč na server) a zkuste se znovu přihlásit přes SSH. Pokud vám bude přístup povolen, prokázali jste, že jediným způsobem, jak se přihlásit přes SSH, je autentizace klíčem.

Nyní bude každý pokus o přihlášení na váš Linuxový server bez odpovídajících klíčových párů odmítnut.

FAQ

1. Jaké řešení poskytují zabezpečení serveru?
Řešení autentizace klíčem SSH poskytují bezpečnost serveru.

2. Jak funguje autentizace klíčem SSH?
Autentizace klíčem SSH je založena na páru klíčů: privátní a veřejný. Privátní klíč zůstává na lokálním počítači a veřejný klíč je odeslán na server, ke kterému chcete získat přístup. Klíče se ověřují při přihlášení, aby se zkontrolovala jejich shoda.

3. Proč je autentizace klíčem SSH bezpečnější než tradiční autentizace pomocí uživatelského jména a hesla?
Autentizace klíčem SSH je bezpečnější, protože nevyžaduje zadání hesla při přihlašování. Privátní klíč zůstává na lokálním počítači, což znemožňuje neoprávněným osobám jeho zachycení.

4. Jak vygenerovat pár klíčů SSH?
Pár klíčů SSH můžete vygenerovat na lokálním počítači pomocí příkazu „ssh-keygen“.

5. Jak zkopírovat veřejný klíč na vzdálený počítač?
Veřejný klíč můžete zkopírovat na vzdálený počítač pomocí příkazu „ssh-copy-id USER@SERVER“.

6. Jak nakonfigurovat SSH server pro vyšší zabezpečení?
Chcete-li zvýšit zabezpečení SSH serveru, musíte povolit autentizaci veřejným klíčem a zakázat autentizaci heslem v konfiguračním souboru SSH démona.

7. Jak restartovat SSH po provedení změn v konfiguraci?
Můžete restartovat SSH pomocí příkazu „sudo systemctl restart sshd“.

Definice

Secure Shell (SSH) – bezpečný komunikační protokol pro síťová připojení. Často se používá pro vzdálené přihlašování na servery.

Privátní klíč – tajný kryptografický klíč, který zůstává na lokálním počítači. Slouží k odemčení šifrovaných dat.

Veřejný klíč – kryptografický klíč, který je odeslán na server, ke kterému chcete získat přístup. Používá se při autentizaci klíčem SSH.

Autentizace – proces ověřování totožnosti uživatele nebo systému.

Příkazová řádka –

The source of the article is from the blog newyorkpostgazette.com