Ako na diaľku kopírovať súbory cez SSH bez zadania hesla
SSH je záchranca, keď potrebujete vzdialene spravovať počítač, ale viete, že môžete tiež nahrať a sťahovať súbory? Pomocou kľúčov SSH môžete preskočiť, aby ste museli zadávať heslá a používať to pre skripty!
Tento proces funguje v systémoch Linux a Mac OS za predpokladu, že sú správne nakonfigurované na prístup SSH. Ak používate operačný systém Windows, môžete používať program Cygwin na získanie funkcií podobného systému Linux a s malým ladením bude fungovať aj SSH.
Kopírovanie súborov cez SSH
Zabezpečená kópia je naozaj užitočný príkaz a je to naozaj jednoduché použitie. Základný formát príkazu je nasledovný:
skp [možnosti] original_file cieľ_souboru
Najväčším kickerom je spôsob formátovania vzdialenej časti. Keď adresujete vzdialený súbor, musíte to urobiť nasledujúcim spôsobom:
user @ server: cesta / k / súboru
Serverom môže byť adresa URL alebo adresa IP. Nasleduje dvojbodka, potom cesta k príslušnému súboru alebo priečinku. Pozrime sa na príklad.
scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Tento príkaz obsahuje príznak [-P] (všimnite si, že je to kapitál P). To umožňuje určiť číslo portu namiesto predvoleného nastavenia 22. Toto je pre mňa nevyhnutné kvôli spôsobu, akým som nakonfiguroval môj systém.
Ďalej môj pôvodný súbor je "url.txt", ktorý je vnútri adresára s názvom "Desktop". Cieľový súbor je v "~ / Desktop / url.txt", ktorý je rovnaký ako "/user/yatri/Desktop/url.txt". Tento príkaz je spustený používateľom "yatri" na vzdialenom počítači "192.168.1.50".
Čo Ak potrebujete urobiť opak? Môžete kopírovať súbory zo vzdialeného servera podobne.
Tu som skopíroval súbor zo zložky "~ / Desktop /" vzdialeného počítača do priečinka "Desktop" počítača.
Ak chcete skopírovať celé adresáre, musíte použiť príznak [-r] (všimnite si, že je to malé písmeno r).
Môžete tiež kombinovať príznaky. Namiesto
scp -P-r ...
Môžete to spraviť
scp -Pr ...
Najťažšou časťou je, že dokončenie karty nie vždy funguje, takže je užitočné mať iný terminál s reláciou SSH, aby ste vedeli, kam dať veci.
SSH a SCP bez hesiel
Zabezpečená kópia je skvelá. Môžete to vložiť do skriptov a nechať ho zálohovať na vzdialených počítačoch. Problém spočíva v tom, že niekedy nemôžete zadať heslo. A buďme úprimní, je to skutočná veľká bolesť, aby ste vložili svoje heslo do vzdialeného počítača, na ktorý ste zrejme mali prístup.
No, môžeme sa dostať okolo pomocou hesiel pomocou kľúčových súborov. Počítač môžeme vytvoriť dva kľúčové súbory - jednu verejnú, ktorá patrí na vzdialený server a jeden súkromný, ktorý je vo vašom počítači a musí byť bezpečný - a tieto budú použité namiesto hesla. Docela pohodlné, správne?
Do počítača zadajte nasledujúci príkaz:
ssh-keygen -t rsa
Týmto sa vygenerujú dva klávesy a vložia sa do nich:
~ / .Ssh /
s menami "id_rsa" pre váš súkromný kľúč a "id_rsa.pub" pre váš verejný kľúč.
Po zadaní príkazu sa zobrazí otázka, kam uložiť kľúč. Ak chcete použiť vyššie uvedené predvolené hodnoty, stlačte Enter.
Potom budete vyzvaní na zadanie prístupovej frázy. Stlačením klávesu Enter nechajte toto prázdne, potom to znova urobte, keď požiada o potvrdenie. Ďalším krokom je skopírovanie súboru verejného kľúča do vzdialeného počítača. Môžete to použiť scp:
Cieľ vášho verejného kľúča je na vzdialenom serveri v nasledujúcom súbore:
~ / .Ssh / authorized_keys2
Nasledujúce verejné kľúče môžu byť pripojené k tomuto súboru, podobne ako súbor ~ / .ssh / known_hosts. To znamená, že ak by ste chceli na tomto serveri pridať ďalší verejný kľúč pre svoj účet, skopírovali by obsah druhého súboru id_rsa.pub do nového riadku v existujúcom súbore authorized_keys2.
Bezpečnostné dôvody
Nie je to menej bezpečné ako heslo?
V praktickom zmysle, nie naozaj. Vytvorený privátny kľúč je uložený v počítači, ktorý používate, a nikdy sa neprevedie, ani sa neoverí. Tento súkromný kľúč LEN sa zhoduje iba s jedným verejným kľúčom a pripojenie musí byť spustené z počítača s privátnym kľúčom. RSA je celkom bezpečná a používa štandardne 2048 bitov.
V skutočnosti je to teoreticky podobné ako používanie hesla. Ak niekto pozná vaše heslo, vaša bezpečnosť vyjde z okna. Ak má niekto súbor so súkromným kľúčom, stratí sa bezpečnosť na ľubovoľnom počítači, ktorý má zodpovedajúci verejný kľúč, ale potrebuje prístup k počítaču, aby ho získal.
Môže to byť bezpečnejšie?
Môžete kombinovať heslo so súbormi kľúčov. Postupujte podľa vyššie uvedených krokov, ale zadajte silnú prístupovú frázu. Teraz, keď sa pripojíte cez SSH alebo použijete SCP, budete potrebovať správny súbor súkromného kľúča rovnako ako aj správna prístupová fráza.
Po zadaní prístupovej frázy raz nebudete opäť požiadaní, kým nezatvoríte svoju reláciu. To znamená, že pri prvom spustení SSH / SCP budete musieť zadať svoje heslo, ale všetky nasledujúce akcie si to nevyžadujú. Keď sa odhlásíte z počítača (nie z diaľkového) alebo zatvoríte okno terminálu, budete musieť znova ho zadať. Týmto spôsobom bezpečne neznamenáte, že ste stále obťažovaní hesla.
Môžem znovu použiť páru verejného / súkromného kľúča?
Je to naozaj zlý nápad. Ak niekto nájde vaše heslo a používate rovnaké heslo pre všetky svoje účty, majú teraz prístup ku všetkým týmto účtom. Podobne aj váš súbor súkromného kľúča je super tajný a dôležitý. (Ak chcete získať ďalšie informácie, pozrite si časť Ako obnoviť po odstránení hesla e-mailu)
Najlepšie je vytvoriť nové páry kľúčov pre každý počítač a účet, ktorý chcete prepojiť. Týmto spôsobom, ak niektorý z vašich súkromných kľúčov bude nejakým spôsobom zachytený, môžete na jednom vzdialenom počítači iba kompromitovať jeden účet.
Je tiež naozaj dôležité poznamenať, že všetky vaše súkromné kľúče sú uložené na rovnakom mieste: v ~ / .ssh / v počítači môžete použiť TrueCrypt na vytvorenie bezpečného šifrovaného kontajnera a potom vytvoriť symbolické odkazy v súbore ~ / .ssh / adresár. V závislosti od toho, čo robím, používam túto superparanoidnú superbezpečnú metódu, aby som si uvoľnila moju myseľ.
Použili ste SCP v akomkoľvek skripte? Používate kľúčové súbory namiesto hesiel? Zdieľajte svoje vlastné skúsenosti s ostatnými čitateľmi v komentároch!