GNU/Linux >> Znalost Linux >  >> Linux

Nastavení ověřování pomocí klíče SSH z openSSH na SSH2

Předchozí články (nastavení openSSH na openSSH, nastavení SSH2 na SSH2) vysvětlují, jak nastavit ověřování pomocí klíče na stejná verze ssh pro provádění ssh a scp bez zadání hesla. Tento článek vysvětluje, jak nastavit ověřování založené na klíči SSH mezi různými verzemi SSH (od openSSH po SSH2) pro provádění ssh a scp bez zadání hesla.

1. Ověřte verzi SSH místního a vzdáleného hostitele.

V tomto příkladu local-host běží na openSSH a remote-host běží na SSH2.

[local-host]$ ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007

[remote-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
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2

2. Vygenerujte pár klíčů na místním hostiteli pomocí ssh-keygen

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
3b:2a:d2:ac:8c:71:81:7e:b7:31:21:11:b8:e8:31:ad jsmith@local-host

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

Ve výchozím nastavení generuje ssh-keygen na openSSH pár klíčů RSA. Můžete také vygenerovat pár klíčů DSA pomocí:ssh-keygen -t dsa příkaz.

3. Převeďte veřejný klíč openSSH na veřejný klíč SSH2.

Na místním hostiteli, na kterém běží openSSH, převeďte veřejný klíč openSSH na veřejný klíč SSH2 pomocí ssh-keygen, jak je uvedeno níže.

[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub

4. Nainstalujte veřejný klíč na vzdáleného hostitele, na kterém běží SSH2.

Vytvořte nový soubor veřejného klíče na vzdáleném hostiteli a zkopírujte a vložte převedený klíč SSH2 z místního hostitele.

[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub 
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host"
DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI
3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU
YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ
LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP
LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8
a7cQuMS178i9eDBEC==
---- END SSH2 PUBLIC KEY ----

Přidejte výše uvedený název souboru veřejného klíče do autorizačního souboru na vzdáleném hostiteli, jak je znázorněno níže.

[remote-host]$ vi ~/.ssh2/authorization 
Key local-host_ssh2_key.pub

5. Ověřte přihlášení z místního hostitele ke vzdálenému hostiteli pomocí ověřování klíčem SSH2.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
The authenticity of host 'local-host' can't be established.
DSA key fingerprint is a5:f6:2e:e6:a9:b2:7b:0e:e7:ae:cb:6c:7b:f5:6d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'local-host' (DSA) to the list of known hosts.
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <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.

6. Spusťte SSH Agenta na local-host

Agent SSH bude spuštěn na pozadí, aby podržel soukromé klíče a provedl ssh a scp, aniž by bylo nutné několikrát zadávat přístupovou frázi.

[local-host]$ ssh-agent $SHELL

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

[local-host]$ ssh-add
Enter passphrase for /home/jsmith/.ssh/id_rsa:<Enter your passphrase here>
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

8. 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>

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

  2. Jak nakonfigurovat ověřování na základě klíče SSH v systému Linux

  3. Ssh – rozdíl mezi klíčem Openssh a klíčem Putty?

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

  2. Importovat klíč Ssh jako podklíč Gpg k použití pro ověřování Ssh?

  3. Jak provádět SSH a SCP bez hesla z SSH2 na OpenSSH

  1. Ssh – Stále dostáváte výzvu k zadání hesla pomocí Ssh s ověřováním pomocí veřejného klíče?

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

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