GNU/Linux >> Znalost Linux >  >> Linux

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

V našich předchozích článcích jsme diskutovali o tom, jak nastavit autentizaci založenou na klíči ssh pro provádění ssh a scp bez hesla pod následující tři scénáře:

  1. OpenSSH na OpenSSH
  2. OpenSSH na SSH2
  3. SSH2 až SSH2

V tomto článku vysvětlím, jak provádět ssh a scp z SSH2 (lokální hostitel) na OpenSSH (vzdálený hostitel) bez hesla.

1. Identifikujte verzi SSH místního hostitele a vzdáleného hostitele

V tomto příkladu místní hostitel používá SSH2 a vzdálený hostitel používá OpenSSH.

[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

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

2. Vygenerujte pár ověřovacích klíčů SSH2 na místním hostiteli pomocí ssh-keygen2

Na SSH2 bude ssh-keygen měkkým odkazem na ssh-keygen2, jak je znázorněno níže.

[local-host]$ ls -l /usr/local/bin/ssh-keygen
lrwxrwxrwx  1 root root 11 Jul 31  2006 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
7 o.oOo..oOo.o
Key generated.
2048-bit dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700
Passphrase : [Enter the password here]
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_a
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_a.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/jsmith/.ssh2.

Soukromý klíč byste neměli s nikým sdílet.

Ve výchozím nastavení ssh-keygen2 generuje pár klíčů DSA (Digital Signature Algorithm). Můžete také vygenerovat pár klíčů RSA, jak je uvedeno níže.

[local-host]$ ssh-keygen -t rsa

3. Zkopírujte veřejný klíč SSH2 z místního hostitele na vzdálený hostitel, na kterém běží OpenSSH

Zkopírujte soubor local-host:/home/jsmith/.ssh2/id_dsa_2048_a.pub do  vzdáleného hostitele:/home/jsmith/.ssh/id_dsa_1024_a.pub. Proveďte vi /home/jsmith/.ssh/id_dsa_1024_b.pub na vzdáleném hostiteli a zkopírujte obsah veřejného klíče z místního hostitele.

[remote-host]$ vi /home/jsmith/.ssh/id_dsa_1024_a.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host Sun Oct 19 2008 14:49:42 -070\0"
7ZTVd7H63VyVqBIqfmEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFDG0VQESj
5iGSvMtmBBj8wQxGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpghC97mIx
tIxJA7ZTVd7H63VIqmzlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8COWQs
t6jsP6RG/WrpHi5iGSvMtmBBj8wQGHddexkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnfLL7T
RTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcdXFY
2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQci
dko1pKuV1W9rOK3y19A2J2N6rSdWYb7Zyzw8Gr7kTMWX1TP5WhRGCUhNRYnjI+4wgZIZdC
lfGdp8MGI3HBg9CAr702BOzRTMnW0aqsGjrbhcwhWaDgRymhBh++nGAhHxeWn4ApJ8F6kT
8HaAm3dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGi
PQTrt9NAzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA==
---- END SSH2 PUBLIC KEY ----

4. Na místním hostiteli vytvořte soubor ~/.ssh2/identification

Vytvořte následující soubor na místním hostiteli.

$ vim ~/.ssh2/identification
IdKey id_dsa_2048_a

5. Na vzdáleném hostiteli převeďte veřejný klíč SSH2 na veřejný klíč OpenSSH

To by mělo být provedeno na vzdáleném hostiteli, na kterém běží OpenSSH. Pouze OpenSSH dokáže převádět klíče tam a zpět mezi formáty OpenSSH a SSH2.

[remote-host]$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > \
~/.ssh/id_dsa_1024_a_openssh.pub

Zkopírujte převedený veřejný klíč OpenSSH ze souboru ~/.ssh/id_dsa_1024_a_openssh.pub do souboru author_keys, jak je uvedeno níže.

[remote-host]$ vi ~/.ssh/authorized_keys
ssh-dss 5iGSvMtmBBj8wQdegAEBALVa6VKtALZkydlOiPasikEQfujH07tjW+OffaRufFD
G0VQESjq+YlVTWcXxStz0xGlvJ/dayVqBvvHzMao8bwGC+HFUtH1un7uyIEwOqU1fNzEpgh
C97s143S8zBcTAGtdegte3IqmlLbp/ZCd6bcJLvZEepMz96nlNB4NJ5UYIfdgXNhf/TrJD8
COWQst6jsP6RG/WrpHiI4QVDM6tZVZ4CnGjm1QPkRnf/o5YMFJZRo4Iwc7+bgYrIyywBZnf
LL7TRTk9TBfWzgJHy/y1tTtCMvVooWvFZbG5AiV3de63MxBaD0o68SASyXZzVM+MabXhjcd
XFY2vjq2vJxOzunEAAAAVAOTeOzDCnj3K5iGSvMtmBBj8wQGHAAABAA38sGpHEfSxLx5MjQ
dFYXpHCaZ/xuKPXr4DFugGl8MRDU8TwioNE9kRi0Ko/kB5LTHuGhMPHGshMJeVGiPQTrt9N
AzgYyJeT9RB9VZadgElMvQ9S0+fo6ipOA==

6. Nastavte správná oprávnění na vzdáleném hostiteli k adresáři .ssh

Na vzdáleném hostiteli, na kterém běží openSSH, nezapomeňte nastavit následující oprávnění. Bez toho budete mít všechny druhy podivných problémů s ssh.

$ chmod 755 ~
$ chmod 755 ~/.ssh
$ chmod 644 ~/.ssh/authorized_keys

7. Přihlaste se z místního hostitele ke vzdálenému hostiteli pomocí ověřování pomocí klíče SSH

Proveďte ssh z místního hostitele (SSH2) do vzdáleného hostitele (OpenSSH), jak je uvedeno níže, abyste ověřili, zda autentizace založená na klíči funguje správně.

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

[local-host]$ ssh -l jsmith remote-host
Host key not found from database.
Key fingerprint:
bitaz-navun-gogus-mptop-ljilk-qwlem-ftrtm-llmak-topok-zuiof-bnmix
You can get a public key's fingerprint by running
% ssh-keygen -F publickey.pub on the keyfile.
Are you sure you want to continue connecting (yes/no)? yes
Host key saved to /home/jsmith/.ssh2/hostkeys/key_22_remote-host.pub
host key for remote-host, accepted by jsmith Sun Oct 19 2008 15:06:42 -0700

Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_a" with comment "2048-bit
dsa, jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700":[Enter password]
Last login: Sun Oct 19 14:01:48 2008 from 192.168.1.10

[remote-host]$ [You are on remote-host here]


Poznámka :Pokud se při provádění ssh nebo scp z místního hostitele na vzdálený hostitel zobrazí následující chyba, přečtěte si téma Jak vyřešit problém se selháním vyjednávání algoritmu na SSH, kde tento problém vyřešíte.

[local-host]$ ssh -l jsmith remote-host
warning: Authentication failed.
Disconnected; key exchange or algorithm negotiation failed
(Algorithm negotiation failed.)


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 jednu odstranili ú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 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

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_a.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_a (2048-bit dsa,
jsmith@local-host, Sun Oct 19 2008 14:49:42 -0700).
Enter passphrase:[Enter your passphrase here]

10. Provádějte SSH nebo SCP z místního hostitele do vzdáleného domova bez zadání hesla

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

[local-host]$ ssh -l jsmith remote-host
Last login: Sun Oct 19 14:20:48 2008 from 192.168.1.10

[remote-host]$ [You are on remote-host here]


Pokud se vám tento článek líbil, sdílejte ho na delicious and Stump it .


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

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

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

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

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

  3. Jak spustit SCP bez přerušení výzvy k zadání hesla v Linuxu

  1. Jak odstranit heslo z klíče SSL

  2. Jak nastavit Rsync s SSH na UNIX / Linux (rsync bez hesla)

  3. Jak mohu provést `git pull` bez opětovného zadání hesla SSH?