GNU/Linux >> Znalost Linux >  >> Linux

Komplexní příručka pro nastavení ověřování pomocí klíče SSH2

Dříve jsem vysvětlil, jak provádět SSH a SCP bez zadání hesla na openSSH. V tomto článku vysvětlím, jak nastavit ověřování pomocí klíče na SSH2 a proveďte SSH/SCP bez zadání hesla pomocí následujících 10 kroků.
1. Ověřte, že místní a vzdálený hostitel používají SSH2. Vezměte prosím na vědomí, že ssh a scp je symbolický odkaz na ssh2 a scp2, jak je uvedeno níže.

[local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

[remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[remote-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu


2. Vygenerujte pár klíčů na místním hostiteli pomocí ssh-keygen2. Typicky bude ssh-keygen soft-link na ssh-keygen2, jak je ukázáno níže.

[local-host]$ ls -l /usr/local/bin/ssh-keygen
lrwxrwxrwx  1 root root 11 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
2 oOo.oOo.oOo.
Key generated.
2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700
Passphrase :<Enter the passphrase>
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.pub

Veřejný klíč a soukromý klíč jsou uloženy ve složce .ssh2 ve vašem domovském adresáři. V tomto příkladu je pod /home/jnovak/.ssh2. Soukromý klíč byste neměli s nikým sdílet.

Ve výchozím nastavení generuje ssh-keygen2 pár klíčů DSA. Můžete také vygenerovat pár klíčů RSA pomocí:ssh-keygen -t rsa příkaz.
3. Udělte správná oprávnění adresáři .ssh2 jak je uvedeno níže.

[local-host]$ chmod 755 ~/.ssh2/
[local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub
[local-host]$ chmod 644 ~/.ssh2/authorization

4. Identifikujte soukromý klíč na klientském počítači. Na místním hostiteli přidejte soukromý klíč do identifikačního souboru SSH2, jak je znázorněno níže. Pokud identifikační soubor neexistuje, vytvořte nový soubor. Pokud je soubor přítomen, připojte název souboru soukromého klíče, který byl vygenerován ve výše uvedeném kroku, k identifikačnímu souboru v „IdKey {název souboru soukromého klíče} “, jak je uvedeno níže.

[local-host]$ cat /home/jsmith/.ssh2/identification
IdKey id_dsa_2048_a
IdKey id_dsa_2048_b

5. Zkopírujte veřejný klíč na vzdáleného hostitele.

Zkopírujte soubor /home/jsmith/.ssh2/id_dsa_2048_b.pub z místního hostitele do vzdáleného hostitele /home/jsmith/.ssh2/id_dsa_2048_b.pub. Můžete provést vi /home/jsmith/.ssh2/id_dsa_2048_b.pub na vzdáleném hostiteli a zkopírovat obsah veřejného klíče z místního hostitele.

[remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:\
20 -0700"
BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0
S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa
HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms
q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL
IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II
vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk

3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo
rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ
YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO
Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/
Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0
ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU
woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv
+hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6
wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/
8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c=
---- END SSH2 PUBLIC KEY ----

6. Vytvořte autorizační soubor na vzdáleném hostiteli Jak je ukázáno níže. Tento autorizační soubor by měl obsahovat název veřejného klíče, který byl zkopírován z místního hostitele na vzdálený hostitel, jak je uvedeno v předchozím kroku. Upozorňujeme, že formát tohoto souboru je „Klíč {název souboru veřejného klíče} “.

[remote-host]$ cat /home/jsmith/.ssh2/authorization
Key id_dsa_2048_b.pub

7. Přihlaste se z místního hostitele ke vzdálenému hostiteli pomocí ověřování pomocí klíče SSH2, abyste ověřili, zda funguje správně.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": <Enter your passphrase here>
Last login: Sat Jun 21 2008 23:13:00 -0700 from 192.168.1.102
No mail.
[remote-host]$ <You are on remote-host here>

Existují dva způsoby, jak provést ssh a scp bez zadání hesla:

  1. Žádná přístupová fráze. Při vytváření páru klíčů ponechte heslo prázdné. Tuto volbu použijte pro automatizované dávkové zpracování. pro např. pokud spouštíte úlohu cron pro kopírování souborů mezi počítači, je to vhodná volba. Kroky dalšího kroku této metody můžete přeskočit.
  2. Použijte přístupové heslo a agenta SSH. Pokud používáte ssh a scp interaktivně z příkazového řádku a nechcete používat heslo pokaždé, když provádíte ssh nebo scp, nedoporučuji předchozí možnost (bez přístupové fráze), protože jste odstranili jednu úroveň zabezpečení v autentizaci na základě ssh klíče. Místo toho použijte při vytváření páru klíčů přístupovou frázi a pomocí agenta SSH proveďte ssh a scp, aniž byste museli pokaždé zadávat heslo, jak je vysvětleno v krocích níže.

8. Spusťte agenta SSH na místním hostiteli, aby provedl ssh a scp, aniž byste museli několikrát zadávat přístupovou frázi.

[local-host]$ ssh-agent $SHELL

9. Načtěte soukromý klíč do agenta SSH na místním hostiteli.

[local-host]$ ssh-add
Adding identity: /home/jsmith/.ssh2/id_dsa_2048_b.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2008 23:10:20 -0700).
Enter passphrase: <Enter your passphrase here>

10. Proveďte SSH nebo SCP do vzdáleného domova z místního hostitele bez zadání hesla.

[local-host]$<You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail.
<ssh did not ask for passphrase this time>
[remote-host]$ <You are on remote-host here>

Zanechte prosím své komentáře a zpětnou vazbu k tomuto článku. Pokud se vám tento příspěvek líbí, opravdu bych ocenil, kdybyste se mohli přihlásit k odběru The Geek Stuff.


Linux
  1. Bash pro průvodce smyčkou a příklady

  2. Cron Job:Komplexní průvodce pro začátečníky 2022

  3. Jak vytvořit komplexní sadu možností pro definování „příkazových znaků“ na obrazovce Gnu?

  1. Jak používat Sftp v systému, který vyžaduje Sudo pro root přístup a ověřování pomocí klíče Ssh?

  2. Jak nastavit klíče SSH pro přihlášení k ssh „bez hesla“ v systému Linux

  3. Jak nastavit klíče SSH pro přihlášení pomocí „veřejného/soukromého klíče“ SSH v systému Linux

  1. 3 způsoby, jak konfiguruji SSH pro soukromí

  2. Převést soukromý klíč Openssh na soukromý klíč Ssh2?

  3. Omezte přístup SSH na základě hesla na uživatele, ale povolte ověřování pomocí klíče