GNU/Linux >> Znalost Linux >  >> Linux

Proveďte SSH a SCP bez zadání hesla na openSSH

V tomto článku vysvětlím, jak provádět ssh a scp bez zadávání hesla pomocí ověřování veřejného klíče SSH pomocí agenta SSH na openSSH

Autentizace založená na klíči SSH má dvě úrovně zabezpečení. Abyste se mohli přihlásit, potřebujete jak soukromý klíč, tak přístupovou frázi. I když je jeden z nich kompromitován, útočník se stále nemůže přihlásit k vašemu účtu, protože oba jsou potřeba k přihlášení. To je mnohem lepší než typická autentizace založená na hesle, kde v případě prolomení hesla může útočník získat přístup do systému.

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

Následujících 8 kroků vysvětluje, jak provést SSH a SCP z místního hostitele na vzdáleného hostitele bez zadání hesla v systému openSSH

1. Ověřte, že místní hostitel a vzdálený hostitel používají openSSH

[local-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

[remote-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

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:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 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. Nainstalujte veřejný klíč na vzdáleného hostitele.

Zkopírujte obsah veřejného klíče z místního hostitele a vložte jej do /home/jsmith/.ssh/authorized_keys na vzdáleném hostiteli. Pokud /home/jsmith/.ssh/authorized_keys již má nějaký jiný veřejný klíč, můžete jej připojit na jeho konec. Pokud adresář .ssh ve vašem domovském adresáři na vzdáleném hostiteli neexistuje, vytvořte jej.

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

Jednoduše řečeno, zkopírujte local-host:/home/jsmith/.ssh/id_rsa.pub do remote-host:/home/jsmith/.ssh/authorized_keys

4. Udělte příslušná oprávnění adresáři .ssh na vzdáleném hostiteli.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

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

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

[local-host]$ ssh -l jsmith remote-host
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. [remote-host]$ <You are on remote-host here>

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

Ověřte, zda je agent SSH již spuštěn, pokud jej nespusťte, jak je uvedeno níže.

[local-host]$ ps -ef | grep ssh-agent
511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent

[local-host]$ ssh-agent $SHELL

[local-host]$ ps -ef | grep ssh-agent
511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash
511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

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)

Následující jsou různé možnosti dostupné v ssh-add:

  • ssh-add :Načte konkrétní soubor klíče.
  • ssh-add -l:Zobrazí seznam všech klíčů načtených v agentovi ssh.
  • ssh-add -d :Odstraní konkrétní klíč z agenta ssh
  • ssh-add -D:Smazat všechny klíče

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>

Pomozte mi šířit novinky o The Geek Stuff.

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 mohli šířit informace o blogu „The Geek Stuff“ jeho přidáním na del.icio.us nebo Digg prostřednictvím odkazu níže.


Linux
  1. SSH – Generování a práce s ssh klíči

  2. Jak převést soubor PPK na klíče OpenSSH a přihlásit se pomocí SSH v Linuxu?

  3. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  1. Ssh – Potřebujete Tty ke spuštění sudo, pokud mohu sudo bez hesla?

  2. Jak spustit SSH a SCP v dávkovém režimu (pouze když je povoleno přihlášení bez hesla)

  3. 11 Užitečné příkazy „ssh“ a „scp“ v Linuxu

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

  2. Jak vzdáleně kopírovat soubory přes SSH bez zadání hesla?

  3. TigerVNC + SSH bez hesla VNC?