Kako daljinski kopirati datoteke preko SSH bez unošenja lozinke
SSH je spasilac kada trebate daljinski upravljati računalom, ali jeste li znali da možete prenijeti i preuzeti datoteke? Pomoću SSH ključeva možete preskočiti upisivanje zaporki i koristiti ih za skripte!
Ovaj proces radi na Linuxu i Mac OS-u, pod uvjetom da su ispravno konfigurirani za SSH pristup. Ako upotrebljavate Windows, možete koristiti Cygwin da biste dobili funkcionalnost nalik Linuxu, a uz malo ugađanja, SSH će se također pokrenuti.
Kopiranje datoteka preko SSH-a
Sigurna kopija je stvarno korisna naredba i vrlo je jednostavna za korištenje. Osnovni format naredbe je sljedeći:
scp [opcije] original_file destination_file
Najveći kicker je kako formatirati udaljeni dio. Kada adresirate udaljenu datoteku, morate to učiniti na sljedeći način:
korisnik @ poslužitelj: put / do / datoteka
Poslužitelj može biti URL ili IP adresa. Slijedi dvotočka, a zatim put do dotične datoteke ili mape. Pogledajmo primjer.
scp -P 40050 Radna površina / url.txt [email protected]: ~ / Desktop / url.txt
Ova naredba ima zastavicu [-P] (imajte na umu da je to glavni P). To mi omogućuje da odredim broj porta umjesto zadanog 22. To mi je potrebno zbog načina na koji sam konfigurirao svoj sustav.
Zatim, moja izvorna datoteka je “url.txt” koja se nalazi unutar direktorija nazvanog “Desktop”. Odredišna datoteka je u "~ / Desktop / url.txt" koja je ista kao "/user/yatri/Desktop/url.txt". Ovu naredbu pokreće korisnik "yatri" na udaljenom računalu "192.168.1.50".
Što ako trebate učiniti suprotno? Isto tako možete kopirati datoteke s udaljenog poslužitelja.
Ovdje sam kopirao datoteku iz mape "~ / Desktop /" udaljenog računala u mapu "Desktop" na računalu.
Da biste kopirali cijele direktorije, morat ćete upotrijebiti oznaku [-r] (imajte na umu da je to mala slova r).
Također možete kombinirati zastavice. Umjesto
scp -P -r…
Možeš to učiniti
scp -Pr…
Najteži dio ovdje je da dovršenje tabulacije ne funkcionira uvijek, pa je korisno imati još jedan terminal sa SSH sesijom kako biste znali gdje staviti stvari.
SSH i SCP bez lozinki
Sigurna kopija je sjajna. Možete ga staviti u skripte i imati to napraviti sigurnosne kopije na udaljenim računalima. Problem je u tome što možda nećete uvijek biti u blizini da biste unijeli zaporku. Budimo iskreni, jako je teško staviti svoju zaporku na udaljeno računalo koje očito imate pristup cijelo vrijeme.
Pa, možemo koristiti zaporke pomoću ključnih datoteka. Računalo može generirati dvije ključne datoteke - jednu javnu koja pripada udaljenom poslužitelju i jednu privatnu koja je na vašem računalu i mora biti sigurna - i oni će se koristiti umjesto lozinke. Prilično zgodno?
Na računalu unesite sljedeću naredbu:
ssh-keygen -t rsa
To će generirati dvije tipke i staviti ih u:
~ / .Ssh /
s imenima “id_rsa” za vaš osobni ključ i “id_rsa.pub” za vaš javni ključ.
Nakon unosa naredbe bit ćete upitani gdje želite spremiti ključ. Možete pritisnuti Enter da biste koristili gore navedene zadane postavke.
Zatim ćete morati unijeti zaporku. Pritisnite Enter da biste ostavili ovo prazno, a zatim to ponovite kada zatraži potvrdu. Sljedeći korak je kopiranje datoteke javnog ključa na udaljeno računalo. Za to možete koristiti scp:
Odredište vašeg javnog ključa nalazi se na udaljenom poslužitelju, u sljedećoj datoteci:
~ / .Ssh / authorized_keys2
Sljedeći javni ključevi mogu se dodati ovoj datoteci, poput datoteke ~ / .ssh / known_hosts. To znači da ako želite dodati drugi javni ključ za svoj račun na ovom poslužitelju, kopirajte sadržaj druge datoteke id_rsa.pub u novi redak postojeće datoteke.
Razmatranja sigurnosti
Nije li to manje sigurno od lozinke?
U praktičnom smislu, ne baš. Privatni ključ koji se generira pohranjuje se na računalu koje koristite i nikad se ne prenosi, čak ni za provjeru. Taj se privatni ključ SAMO podudara s tim JEDNIM javnim ključem, a vezu treba pokrenuti s računala koje ima privatni ključ. RSA je prilično sigurna i koristi zadanu 2048-bitnu duljinu.
To je zapravo teoretski slično korištenju vaše lozinke. Ako netko zna vašu zaporku, sigurnost će nestati s prozora. Ako netko ima datoteku privatnog ključa, sigurnost se gubi na bilo kojem računalu koje ima odgovarajući javni ključ, ali im je potreban pristup računalu.
Može li to biti sigurnije?
Možete kombinirati lozinku s ključnim datotekama. Slijedite gore navedene korake, ali unesite jaku zaporku. Sada, kada se povežete preko SSH-a ili koristite SCP, trebat će vam odgovarajuća datoteka privatnog ključa kao i odgovarajuću zaporku.
Jednom kada jednom unesete svoju zaporku, od vas se više neće tražiti dok ne zatvorite sesiju. To znači da ćete prilikom prvog SSH / SCP-a morati unijeti zaporku, ali to neće zahtijevati sve naredne radnje. Nakon što se odjavite s računala (ne udaljenog) ili zatvorite prozor terminala, morat ćete ga ponovno unijeti. Na taj način zapravo ne žrtvujete sigurnost, ali i vi niste stalno uznemiravani zbog lozinki.
Mogu li ponovno koristiti par javnih / privatnih ključeva?
Ovo je stvarno loša ideja. Ako netko pronađe vašu zaporku, a vi upotrebljavate istu zaporku za sve svoje račune, sada imaju pristup svim tim računima. Isto tako, datoteka vašeg privatnog ključa je također supertajna i važna. (Za više informacija pogledajte Kako se oporaviti nakon kompromitiranja vaše lozinke e-poštom)
Najbolje je izraditi nove parove ključeva za svako računalo i račun koji želite povezati. Na taj način, ako se neki od vaših privatnih ključeva nekako uhvati, onda ćete samo jedan račun ugroziti na jednom udaljenom računalu.
Također je važno napomenuti da su svi vaši privatni ključevi pohranjeni na istom mjestu: u ~ / .ssh / na vašem računalu, možete koristiti TrueCrypt za stvaranje sigurnog, šifriranog spremnika, a zatim stvoriti simbole u vašem ~ / .ssh / direktorij. Ovisno o tome što radim, koristim ovu super-paranoidnu super-sigurnu metodu kako bih olakšao svoj um.
Jeste li koristili SCP u bilo kojoj skripti? Koristite li ključne datoteke umjesto lozinki? Podijelite svoju stručnost s drugim čitateljima u komentarima!