GNU/Linux >> Znalost Linux >  >> Linux

Malá kopie souboru SSH na příkazovém řádku

Správci systému Linux používají SSH denně k připojení z jednoho systému k druhému. Důvodem je, že je to defacto protokol pro bezpečné připojení k systémům Linux. Je to bezpečné, protože veškerý provoz mezi systémy je šifrovaný, včetně počáteční výměny přihlášení. Jediná věc, pro kterou správci systému dnes používáme Telnet, je testování vzdáleného připojení k webovému serveru nebo nějakému vzdálenému portu. Dobře, přiznávám, bylo o mně známo, že jsem hacknul jeden nebo dva e-mailové servery pomocí Telnetu, ale to je příběh na jindy. jsem odbočil. Můžete také použít příkazy související s SSH k přenosu souborů mezi hostiteli pomocí SFTP nebo SCP, buď do vzdáleného systému nebo od vzdálený systém. Ale chystám se vám ukázat skvělý kouzelnický trik SSH, který zapůsobí na vaše přátele a možná dokonce zarazí Penna a Tellera, jak jste to udělali.

Poznámka: Tento postup zahrnuje výměnu klíčů SSH mezi hostiteli a výsledkem je, že k navázání připojení již nemusíte zadávat heslo.

Předpoklad:Generování klíče SSH

Než budete moci provést tento magický zázrak, musíte připravit své systémy na používání klíčů SSH mezi nimi. Ve skutečnosti je tento krok volitelný, ale abyste si usnadnili život, doporučuji jej provést.

Pro zjednodušení v tomto příkladu máme tři systémy:hostitel1, hostitel2 a hostitel3, které používají IP adresy 10.10.1.50, 10.10.1.60 a 10.10.1.70, v tomto pořadí. Níže uvedená tabulka může být jasnějším způsobem prezentace tohoto scénáře.

host1 hostitel2 host3
10.10.1.50 10.10.1.60 10.10.1.70

Přihlaste se k hostiteli1 a zadejte následující příkaz pro vygenerování klíče SSH.

[host1] $ ssh-keygenGenerating public/private rsa key pair.Zadejte soubor, do kterého se má klíč uložit (/root/.ssh/id_rsa):Vytvořen adresář '/root/.ssh' .Zadejte přístupové heslo (prázdné pro žádné heslo):Zadejte znovu stejné přístupové heslo:Vaše identifikace byla uložena do /root/.ssh/id_rsa. Váš veřejný klíč byl uložen do /root/.ssh/id_rsa. pub.Otisk klíče je:SHA256:XWk+zJ5Kphe/sT78yg1jLdQCybN4dE2o52eOihEuwPo root@rhel8Náhodný obrázek klíče je:+---[RSA 2048]----+| .. || . ..+ || *.=. || . +.@... || o S + oB . || . . . o.o.=o || . . o o+O=. || . . *.+=B. || E o.oo*=o |+----[SHA256]-----+ 

Přijměte výchozí hodnoty stisknutím klávesy ENTER třikrát, abyste mohli pokračovat výše uvedeným způsobem. Do snímku obrazovky jsem umístil text . Tyto položky neuvidíte v okně terminálu. Vygenerovali jste klíč SSH pro tohoto hostitele. Opakujte tento proces na hostiteli2 a hostiteli3.

Kopírovat klíče

Tento krok je nutné provést na všech hostitelích v obou směrech, aby přenosy souborů a další připojení typu SSH mohly probíhat neomezeně výzvami k zadání hesla. Toto je nejjednodušší způsob výměny klíčů mezi hostiteli.

Zadejte následující příkazy z hostitele1 do hostitele2 (10.10.1.60)

[host1] $ ssh-copy-id khess@host2/usr/bin/ssh-copy-id:INFO:Zdroj klíčů k instalaci:"/home/khess/.ssh/ id_rsa.pub"Autentičnost hostitele 'host2 (10.10.1.60)" nelze zjistit. Otisk klíče ECDSA je SHA256:fM/5eaHGa37W+0xq4QZfL+Y6NobRbCVH1G4uhQLAwMw. Opravdu chcete pokračovat? yes/usr/bin/ssh-copy-id:INFO:pokus o přihlášení pomocí nového klíče (klíčů), pro odfiltrování všech, které jsou již nainstalovány/usr/bin/ssh-copy-id:INFO:1 klíč( s) zbývá nainstalovat -- pokud budete nyní vyzváni, je třeba nainstalovat nové heslo keykhess@host2:Počet přidaných klíčů:1Nyní se zkuste přihlásit do počítače pomocí:"ssh 'khess@host2'"a zkontrolujte, zda byly přidány pouze požadované klíče. 

A nyní zadejte stejný příkaz z hostitele1 do hostitele3 (10.10.1.70)

[host1] $ ssh-copy-id khess@host3/usr/bin/ssh-copy-id:INFO:Zdroj klíčů k instalaci:"/home/khess/.ssh/ id_rsa.pub"Autentičnost hostitele 'host3 (10.10.1.70)' nelze stanovit. Otisk klíče RSA je SHA256:Y0X9C7rVNiRgM4yuBH8DUOUed5d/N57VYO+aoRmXmP4. Opravdu chcete pokračovat v připojování (yesno/pokračovat) yes/usr/bin/ssh-copy-id:INFO:pokus o přihlášení pomocí nového klíče (klíčů), pro odfiltrování všech, které jsou již nainstalovány/usr/bin/ssh-copy-id:INFO:1 klíč( s) zbývá nainstalovat -- pokud budete nyní vyzváni, je třeba nainstalovat nové heslo keykhess@host3:Počet přidaných klíčů:1Nyní se zkuste přihlásit do počítače pomocí:"ssh 'khess@host3'"a zkontrolujte, zda byly přidány pouze požadované klíče. 

Nyní bude jakákoli transakce typu SSH bez hesla od hostitele1 k hostiteli2 a od hostitele1 k hostiteli3.

Opakujte tento postup pro hostitele 2 a 3.

[host2] $ ssh-copy-id khess@host1

[host2] $ ssh-copy-id khess@host3

[host3] $ ssh-copy-id khess@host1

[host3] $ ssh-copy-id khess@host2

To zkopíruje klíče mezi všemi hostiteli, takže nyní bude jakákoli transakce typu SSH na nebo z jakéhokoli hostitele bez hesla. Vyzkoušejte ten svůj, abyste to dokázali sami sobě.

Udělejte to normální

Pro účely testování vytvořte v každém systému nový soubor ve svém domovském adresáři jako , takže na jednom hostiteli1 máte soubor hostitel1.txt, na hostiteli2 máte soubor hostitel2.txt a na hostiteli3 máte soubor3.txt.

Jako předběžné, nemagické cvičení se přihlaste k hostiteli1 a zkopírujte soubor host1.txt do hostitele2 a hostitele3. Musíte zadat úplnou cestu k cílovému souboru.

[host1] $ scp host1.txt khess@host2:/home/khess/host1.txthost1.txt 100% 0 0,0kb/s 00:00 [host1] $ SCP host1.txt khess@host3:/home/khess/host1.txthost1.txt                                                                                              100 % 0, 0 B kód

Soubory jsou prázdné, a proto vidíte, že velikost je 0 a přenosová rychlost je 0,0 KB/s. Tato čísla by se lišila, kdyby měl soubor jakoukoli velikost. Toto cvičení vypadá úplně stejně, pokud se přihlásíte buď do hostitele2 nebo hostitele3 a zkopírujete místní soubory do jiných vzdálených systémů. To není nijak zvlášť zajímavé nebo magické.

Magic:The Copying

Takže můj poslední trik s kopírováním souborů, skutečné kouzlo kopírování souboru z jednoho hostitele na druhého bez přihlášení k jednomu z nich ze třetího hostitele. Vypadá to takto:

Spusťte relaci SCP z hostitele1, která zkopíruje soubor host2.txt z hostitele2 na hostitel3. Podívejme se, jak to vypadá na příkazovém řádku. Musíte zadat přesnou cestu ve zdrojovém i cílovém systému.

[host1] $ SCP KHESS@HOST2:/HOME/KHESS/HOST2.TXT KHESS@HOST3:/HOME/KHESS/HOST2.TXTHost2.TXT 100%0 0,0KB/S 00:00

Soubor host2.txt se zkopíruje z hostitele2 do hostitele3 bez přihlášení. Magie.

Obecně tento příkaz vypadá takto:

[hostX] $ scp uživatel@zdrojový_hostitel:/cesta/k/souboru uživatel@cílový_hostitel:/cesta/k/souboru

Během kopírování můžete cílový soubor přejmenovat. Vidíte nějaké možnosti automatického skriptování pomocí tohoto kouzelného triku?

A tady zvoláte:"Wow, to je kouzlo!"

Koneckonců

SSH, jak vidíte, není jen jedna věc. Jedná se o zabezpečený protokol, který se používá pro interakci s počítačem, kopírování souborů a zabezpečení dalších typů komunikace, jako je „Služba X přes SSH“. Tento článek vám ukázal, jak nastavit klíče SSH, abyste nemuseli zadávat heslo pro přihlášení do vzdáleného systému, pro kopírování souborů do vzdáleného systému nebo pro kopírování souborů mezi dvěma vzdálenými systémy. Nastavení klíčů SSH mezi systémy znamená, že můžete snadno automatizovat úkoly, jako je manipulace se soubory, aniž byste museli ukládat heslo do souboru. A používání SSH/SCP tímto způsobem není opravdu kouzlo, ale to už jste pravděpodobně věděli.


Linux
  1. Používání Disku Google z příkazového řádku systému Linux

  2. Vytvářejte soubory pomocí příkazového řádku v Linuxu

  3. Jak používat příkaz ssh-keygen ke konfiguraci ssh bez hesla

  1. Zkopírujte a vložte na příkazový řádek Linuxu pomocí xclip

  2. Jak vymazat obsah souboru z příkazového řádku?

  3. Jak získat adresu URL souboru Dropbox z příkazového řádku?

  1. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  2. 4 nástroje ke stažení libovolného souboru pomocí příkazového řádku v Linuxu

  3. Malý trik:pomocí shuf vyberte náhodný soubor nebo řádek v souboru