GNU/Linux >> Znalost Linux >  >> Cent OS

Jak vygenerovat a nastavit klíče SSH na CentOS 7

Úvod

Secure Shell (SSH ) je šifrovaný protokol používaný uživateli Linuxu k připojení ke svým vzdáleným serverům.

Obecně existují dva způsoby, jak mohou klienti přistupovat ke svým serverům – pomocí ověřování na základě hesla nebo ověřování na základě veřejného klíče.

Použití klíčů SSH k ověření se důrazně doporučuje jako bezpečnější alternativa k heslům.

Tento tutoriál vás provede kroky, jak vygenerovat a nastavit klíče SSH na CentOS 7. Zabýváme se také připojením ke vzdálenému serveru pomocí klíčů a deaktivací ověřování heslem .

Než začnete

1. Zkontrolujte existující klíče

Před jakoukoli instalací je rozumné zkontrolovat, zda na klientských počítačích existují nějaké klíče.

Otevřete terminál a vypište všechny veřejné klíče uložené pomocí následujícího příkazu:

ls -l ~/.ssh/id_*.pub

Výstup vás informuje o všech vygenerovaných klíčích aktuálně v systému. Pokud žádné nejsou, zpráva vám řekne, že nemá přístup k /.ssh/id_*.pub , protože takový soubor nebo adresář neexistuje.

2. Ověřte, že je nainstalováno SSH

Chcete-li zkontrolovat, zda je nainstalován balíček thw, spusťte příkaz:

ssh -V

Pokud již máte SSH, výstup vám řekne, která verze je spuštěna. Aktuálně je nejnovější verzí OpenSSH 8.0/8.0p1 .

Kroky k vytvoření klíčů SSH na CentOS

Krok 1:Vytvořte pár klíčů SSH

1. Začněte přihlášením do zdrojového počítače (místního serveru) a vytvořením 2048bitového páru klíčů RSA pomocí příkazu:

ssh-keygen -t rsa

Pokud chcete zpřísnit bezpečnostní opatření, můžete vytvořit 4096bitový klíč přidáním parametru -b 4096:

ssh-keygen -t rsa -b 4096

2. Po zadání příkazu byste měli vidět následující výzvu:

Generating public/private rsa key pair.
Enter file in which to save the key (home/your_username/.ssh/id_rsa):

3. Chcete-li uložit soubor do navrhovaného adresáře, stiskněte Enter . Případně můžete zadat jiné umístění.

4. Dále bude výzva pokračovat:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Přestože vytvoření přístupové fráze není povinné, je velmi vhodné.

5. Nakonec výstup skončí zadáním následujících informací:

Your identification has been saved in home/your_username/.ssh/id_rsa.
Your public key has been saved in home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk
[email protected]
The key's randomart image is:
+------[RSA 3072]-------+
|       .oo.            |
|        +o+.           |
|      + +.+            |
| o  +          S .     |
|      .    E  .   . =.o|
|    .  +       .   [email protected]|
|        +   .     oo*=O|
|   oo            . .+o+|
|                 o=ooo=|
+------ [SHA256] ------+

Nyní musíte přidat veřejný klíč na vzdálený server CentOS.

Krok 2:Zkopírujte veřejný klíč na server CentOS

Veřejný klíč SSH můžete zkopírovat na vzdálený server pomocí několika různých metod:

  1. pomocí skriptu ssh-copy-id
  2. pomocí zabezpečeného kopírování (scp)
  3. ruční zkopírování klíče

Nejrychlejší a nejjednodušší metodou je použití ssh-copy-id . Pokud je tato možnost k dispozici, doporučujeme ji použít. V opačném případě vyzkoušejte kteroukoli z dalších dvou uvedených.

Zkopírujte veřejný klíč pomocí ssh-copy-id

1. Začněte zadáním následujícího příkazu, zadáním uživatelského účtu SSH a IP adresy vzdáleného hostitele:

ssh-copy-id [email protected]_host

Pokud je to poprvé, kdy váš místní počítač přistupuje k tomuto specifickému vzdálenému serveru, obdržíte následující výstup:

The authenticity of host '104.0.316.1 (104.0.316.1)' can't be established.
ECDSA key fingerprint is KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk.
Are you sure you want to continue connecting (yes/no)? yes

2. Potvrďte připojení – zadejte ano a stiskněte Enter .

3. Jakmile vyhledá id_rsa.pub key vytvořený na místním počítači, požádá vás o zadání hesla pro vzdálený účet. Zadejte heslo a stiskněte Enter .

4. Jakmile je spojení navázáno, přidá veřejný klíč na vzdálený server. To se provede zkopírováním ~/.ssh/id_rsa.pub soubor do ~/.ssh vzdáleného serveru adresář. Můžete jej najít pod názvem authorized_keys .

5. Nakonec vám výstup sdělí počet přidaných klíčů spolu s jasnými pokyny, co dělat dále:

Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Zkopírujte veřejný klíč pomocí zabezpečeného kopírování

1. Nejprve nastavte připojení SSH se vzdáleným uživatelem:

ssh [email protected]_host

2. Dále vytvořte ~/.ssh adresář a také authorized_keys soubor:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

3. Použijte chmod příkaz ke změně oprávnění k souboru:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

chmod 700 udělá soubor spustitelným , zatímco chmod 600 umožňuje uživateli číst a psát soubor.

4. Nyní otevřete novou relaci terminálu na místním počítači.

5. Zkopírujte obsah z id_rsa.pub (veřejný klíč SSH) na dříve vytvořené authorized_keys soubor na vzdáleném serveru CentOS zadáním příkazu:

scp ~/.ssh/id_rsa.pub [email protected]_host:~/.ssh/authorized_keys

Díky tomu byl veřejný klíč bezpečně uložen na vzdáleném účtu.

Ruční zkopírování veřejného klíče

1. Chcete-li ručně přidat veřejný klíč SSH na vzdálený počítač, musíte nejprve otevřít obsah z ~/.ssh/id_rsa.pub soubor:

cat ~/.ssh/id_rsa.pub

2. Stejně jako na obrázku níže klíč začíná ssh-rsa a končí uživatelským jménem místního počítače a názvem hostitele vzdáleného počítače:


3. Zkopírujte obsah souboru, jak budete později potřebovat.

4. Poté se v okně terminálu připojte ke vzdálenému serveru, na který si přejete zkopírovat veřejný klíč. K navázání připojení použijte následující příkaz:

ssh [email protected]_host

5. Vytvořte adresář ~/.ssh a autorizované_klíče soubor na serveru CentOS pomocí následujícího příkazu:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

6. Změňte jejich oprávnění k souboru zadáním:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

7. Dále otevřete authorized_keys soubor s editorem podle vašich preferencí. Chcete-li jej například otevřít pomocí Nano, zadejte:

nano authorized_keys

8. Přidejte veřejný klíč, který jste dříve zkopírovali v kroku 2 této sekce na novém řádku (pod stávajícím obsahem).

9. Uložte změny a zavřete soubor.

10. Nakonec se přihlaste na server a ověřte, že je vše správně nastaveno.

Krok 3:Připojte se ke vzdálenému serveru pomocí klíčů SSH

Jakmile dokončíte předchozí kroky (vytvoření páru klíčů RSA a zkopírování veřejného klíče na server CentOS), budete se moci připojit ke vzdálenému hostiteli, aniž byste museli zadávat heslo pro vzdálený účet.

Vše, co musíte udělat, je zadat následující příkaz:

ssh [email protected]_host

Pokud jste při vytváření páru klíčů SSH nezadali přístupovou frázi, automaticky se přihlásíte ke vzdálenému serveru.

V opačném případě zadejte heslo, které jste zadali v úvodních krocích, a stiskněte Enter .

Jakmile shell potvrdí shodu klíče, otevře novou relaci pro přímou komunikaci se serverem.

Krok 4:Zakažte ověřování hesla

Přestože se vám podařilo získat přístup k serveru CentOS, aniž byste museli zadat heslo, stále má na počítači spuštěný systém ověřování založený na hesle. Díky tomu je potenciálním cílem útoků hrubou silou.

Ověřování heslem byste měli zcela zakázat podle uvedených kroků.

1. Pomocí klíčů SSH se přihlaste ke vzdálenému serveru CentOS, který má oprávnění správce:

ssh [email protected]_host

2. Dále otevřete konfigurační soubor démona SSH pomocí textového editoru dle vašeho výběru:

sudo nano /etc/ssh/sshd_config

3. Vyhledejte v souboru následující řádek:

PasswordAuthentication yes

4. Upravte konfiguraci změnou yes hodnotu na no . Směrnice by tedy měla vypadat následovně:

PasswordAuthentication no

5. Uložte soubor a ukončete textový editor.
6. Chcete-li povolit změny, restartujte sshd služba pomocí příkazu:

sudo systemctl restart sshd.service

7. Ověřte, že připojení SSH k serveru stále funguje správně. Otevřete nové okno terminálu a zadejte příkaz:

ssh [email protected]_host

Cent OS
  1. Jak nastavit klíče SSH

  2. Jak nastavit klíče SSH na Ubuntu 16.04

  3. Jak nastavit klíče SSH na Ubuntu 18.04

  1. Jak vygenerovat klíče SSH na Ubuntu 18.04

  2. Nastavení klíčů SSH na CentOS 7 – proces krok za krokem?

  3. Jak nastavit klíče SSH na CentOS 8

  1. Jak nastavit přihlášení k SSH bez hesla

  2. Jak vygenerovat klíč SSH ve Windows 10

  3. Jak vygenerovat a nastavit klíče SSH na Debianu 10