Kako na daljavo kopirati datoteke preko SSH brez vnosa gesla
SSH je reševalna naprava, ko morate oddaljeno upravljati računalnik, vendar ste vedeli, da lahko tudi naložite in prenesete datoteke? Z uporabo ključev SSH lahko preskočite vnos gesel in jih uporabite za skripte!
Ta postopek deluje v operacijskih sistemih Linux in Mac OS, če so pravilno konfigurirani za dostop SSH. Če uporabljate operacijski sistem Windows, lahko uporabite Cygwin za pridobivanje funkcij, podobnih Linuxu, in z majhno prilagoditvijo se bo tudi SSH zagnal..
Kopiranje datotek prek SSH
Zaščitena kopija je zelo koristen ukaz in je zelo enostaven za uporabo. Osnovna oblika ukaza je naslednja:
scp [možnosti] original_file destination_file
Največji kicker je, kako formatirati oddaljeni del. Ko naslovite oddaljeno datoteko, morate to storiti na naslednji način:
user @ server: pot / do / datoteka
Strežnik je lahko URL ali naslov IP. Sledi dvopičje, nato pot do zadevne datoteke ali mape. Poglejmo primer.
scp -P 40050 Namizno / url.txt [email protected]: ~ / Desktop / url.txt
Ta ukaz ima zastavico [-P] (upoštevajte, da je to glavni P). To mi omogoča, da določim številko vrat namesto privzetega 22. To mi je potrebno zaradi načina, ki sem ga konfiguriral.
Nato je moja izvirna datoteka »url.txt«, ki je v imeniku »Desktop«. Ciljna datoteka je v “~ / Desktop / url.txt”, ki je enaka kot “/user/yatri/Desktop/url.txt”. Ta ukaz izvaja uporabnik »yatri« na oddaljenem računalniku »192.168.1.50«.
Kaj, če morate storiti nasprotno? Podobno lahko kopirate datoteke iz oddaljenega strežnika.
Tukaj sem kopiral datoteko iz mape »~ / Desktop /« oddaljenega računalnika v mapo »Namizje« v računalniku.
Če želite kopirati celotne imenike, morate uporabiti zastavo [-r] (upoštevajte, da je to malo r).
Lahko tudi kombinirate zastavice. Namesto
scp -P -r…
Lahko samo narediš
scp -Pr…
Najtežji del tega je, da zaključek zavihkov ne deluje vedno, zato je koristno, da imate drug terminal s sejo SSH, ki se bo izvajal, tako da boste vedeli, kje lahko postavite stvari.
SSH in SCP brez gesel
Varna kopija je super. Lahko ga postavite v skripte in naredite varnostne kopije na oddaljenih računalnikih. Težava je, da morda ne boste vedno v bližini, da vnesete geslo. In bodimo iskreni, res je velika bolečina, da vnesete geslo v oddaljeni računalnik, ki ga očitno imate ves čas dostop..
No, lahko uporabimo gesla s ključnimi datotekami. Računalnik lahko ustvari dve ključni datoteki - eno javno, ki pripada oddaljenemu strežniku, in eno zasebno datoteko, ki je na vašem računalniku, in mora biti varna - in to bo uporabljeno namesto gesla. Zelo priročno, prav?
V računalniku vnesite naslednji ukaz:
ssh-keygen -t rsa
Tako boste ustvarili dva ključa in ju vstavili v:
~ / .ssh /
z imeni “id_rsa” za vaš zasebni ključ in “id_rsa.pub” za vaš javni ključ.
Po vnosu ukaza boste pozvani kje shraniti ključ. Če želite uporabiti zgoraj navedene privzete nastavitve, lahko pritisnete tipko Enter.
Nato boste morali vnesti geslo. Pritisnite Enter, da pustite to prazno, nato pa ponovite, ko vas prosi za potrditev. Naslednji korak je kopiranje datoteke javnega ključa v oddaljeni računalnik. Za to lahko uporabite SCP:
Cilj vašega javnega ključa je na oddaljenem strežniku v naslednji datoteki:
~ / .ssh / authorized_keys2
Naslednji javni ključi so lahko dodani tej datoteki, podobno kot datoteka ~ / .ssh / known_hosts. To pomeni, da če želite na svoj strežnik dodati še en javni ključ za svoj račun, bi kopirali drugo datoteko id_rsa.pub v novo vrstico v obstoječi datoteki s pooblaščenimi ključi2..
Varnostni vidiki
Ali ni to manj varno kot geslo?
V praktičnem smislu, ne res. Ustvarjeni zasebni ključ je shranjen v računalniku, ki ga uporabljate, in se nikoli ne prenese, niti ga ni mogoče preveriti. Ta zasebni ključ se ujema samo s tem JAVNIM ključem in povezavo je treba zagnati z računalnika, ki ima zasebni ključ. RSA je precej varna in privzeto uporablja 2048 bitno dolžino.
Pravzaprav je teoretično precej podobno uporabi gesla. Če nekdo pozna vaše geslo, vaša varnost izgine iz okna. Če ima nekdo datoteko z zasebnim ključem, se varnost izgubi za vsak računalnik, ki ima ustrezen javni ključ, vendar potrebujejo dostop do računalnika,.
Ali je to bolj varno?
Geslo lahko kombinirate s ključnimi datotekami. Sledite zgornjim korakom, vendar vnesite močno geslo. Zdaj, ko se povežete prek SSH ali uporabite SCP, boste potrebovali ustrezno datoteko z zasebnim ključem tako dobro, kot pravilno geslo.
Ko enkrat vnesete geslo, vas ne bo več zahteval, dokler ne zaprete seje. To pomeni, da boste prvič, ko boste SSH / SCP, morali vnesti geslo, vendar ga ne bodo zahtevale vse nadaljnje akcije. Ko se odjavite iz računalnika (ne oddaljenega) ali zaprete okna terminala, ga boste morali ponovno vnesti. Na ta način ne žrtvujete resnično varnosti, ampak tudi ne boste ves čas nadlegovali za gesla.
Ali lahko uporabim par javnih / zasebnih ključev?
To je zelo slaba ideja. Če nekdo najde vaše geslo in uporabljate isto geslo za vse račune, imajo zdaj dostop do vseh teh računov. Podobno je tudi datoteka z zasebnim ključem zelo skrivna in pomembna. (Za več informacij si oglejte Kako obnoviti, ko je vaše geslo ogroženo)
Najbolje je, da ustvarite nove pare ključev za vsak računalnik in račun, ki ga želite povezati. Na ta način, če se nekdo od vaših zasebnih ključev nekako ujame, boste ogrozili samo en račun na enem oddaljenem računalniku.
Prav tako je pomembno omeniti, da so vsi vaši zasebni ključi shranjeni na istem mestu: v ~ / .ssh / na vašem računalniku, lahko uporabite TrueCrypt za ustvarjanje varnega, šifriranega vsebnika, nato pa v ~ / .ssh ustvarite simbolne povezave. / imenik. Glede na to, kaj počnem, uporabljam ta super-paranoičen super-varen način, da mi olajša svoj um.
Ste uporabili SCP v katerikoli skripti? Ali namesto gesel uporabljate ključne datoteke? Delite svoje strokovno znanje z drugimi bralci v komentarjih!