Cum să copiați de la distanță fișierele pe SSH fără a introduce parola
SSH este un dispozitiv de salvare atunci când trebuie să gestionați de la distanță un computer, dar știați că puteți încărca și descărca și fișiere? Folosind cheile SSH, puteți trece prin introducerea parolelor și utilizarea acestora pentru scripturi!
Acest proces funcționează pe Linux și pe Mac OS, cu condiția ca acestea să fie configurate corespunzător pentru accesul SSH. Dacă utilizați Windows, aveți posibilitatea să utilizați Cygwin pentru a obține funcționalități asemănătoare Linux-ului, iar cu un mic amendament SSH va rula și.
Copierea fișierelor peste SSH
Copia securizată este o comandă foarte utilă și este foarte ușor de utilizat. Formatul de bază al comenzii este următorul:
scp [opțiuni] original_file destinație_file
Cel mai mare kicker este modul de formare a părții de la distanță. Când adresați un fișier la distanță, trebuie să o faceți în felul următor:
utilizator @ server: cale / catre / fisier
Serverul poate fi un URL sau o adresă IP. Acesta este urmat de un colon, apoi de calea către dosarul sau dosarul în cauză. Să ne uităm la un exemplu.
scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Această comandă prezintă flagul [-P] (rețineți că este un capital P). Acest lucru îmi permite să specific un număr de port în loc de implicit 22. Acest lucru este necesar pentru mine din cauza modului în care am configurat sistemul meu.
Apoi, fișierul meu original este "url.txt" care se află în interiorul unui director numit "Desktop". Fișierul de destinație este în "~ / Desktop / url.txt" care este același cu "/user/yatri/Desktop/url.txt". Această comandă este administrată de utilizatorul "yatri" pe computerul la distanță "192.168.1.50".
Ce Dacă trebuie să faceți contrariul? Puteți copia fișiere de pe un server la distanță similar.
Aici, am copiat un fișier din folderul "~ / Desktop /" al calculatorului la distanță în dosarul "Desktop" al calculatorului meu.
Pentru a copia directoare întregi, va trebui să utilizați pavilionul [-r] (rețineți că este o rată mică).
De asemenea, puteți combina drapele. In loc de
scp -P-r ...
Poți să faci
scp -Pr ...
Cea mai dificilă parte este că completarea filelor nu funcționează întotdeauna, deci este util să aveți un alt terminal cu o sesiune SSH care rulează astfel încât să știți unde să puneți lucrurile.
SSH și SCP fără parole
Copie securizată este minunată. Puteți să-l puneți în scripturi și să faceți backup la computerele de la distanță. Problema este că este posibil să nu fi întotdeauna în jur pentru a introduce parola. Și, hai să fim cinstiți, este o adevărată durere mare să vă puneți parola pe un computer la distanță pe care evident aveți acces la tot timpul.
Putem să folosim parolele folosind fișiere cheie. Putem avea computerul să genereze două fișiere cheie - un public care aparține serverului de la distanță și unul privat care este pe computerul dvs. și trebuie să fie sigur - și acestea vor fi folosite în locul unei parole. Destul de convenabil, corect?
Pe calculatorul dvs., introduceți următoarea comandă:
ssh-keygen -t rsa
Aceasta va genera cele două chei și le va pune în:
~ / .Ssh /
cu numele "id_rsa" pentru cheia dvs. privată și "id_rsa.pub" pentru cheia publică.
După introducerea comenzii, vi se va cere să salvați cheia. Puteți apăsa pe Enter pentru a utiliza valorile implicite menționate mai sus.
Apoi, vi se va solicita să introduceți o expresie de acces. Apăsați Enter pentru a lăsa acest spațiu gol, apoi faceți-l din nou atunci când solicită confirmarea. Următorul pas este să copiați fișierul cu chei publice pe computerul dvs. la distanță. Puteți folosi scp pentru a face acest lucru:
Destinația pentru cheia publică este pe serverul de la distanță, în următorul fișier:
~ / .Ssh / authorized_keys2
Următoarele chei publice pot fi atașate la acest fișier, la fel ca fișierul ~ / .ssh / known_hosts. Aceasta înseamnă că, dacă doriți să adăugați o altă cheie publică pentru contul dvs. pe acest server, ați copia conținutul celui de-al doilea fișier id_rsa.pub într-o linie nouă din fișierul authorized_keys2 existent.
Considerații privind securitatea
Nu este mai puțin sigur decât o parolă?
Într-un sens practic, nu într-adevăr. Cheia privată care este generată este stocată pe computerul pe care îl utilizați și nu este niciodată transferat, nici chiar verificat. Această cheie privată se potrivește NUMAI cu acea cheie publică unică și conexiunea trebuie inițiată de la computerul care are cheia privată. RSA este destul de sigur și utilizează în mod implicit o lungime de 2048 biți.
De fapt, teoretic este destul de similar cu utilizarea parolei. Dacă cineva vă cunoaște parola, securitatea dvs. iese din fereastră. Dacă cineva are fișierul cu cheia dvs. privată, atunci se pierde securitatea pentru orice computer care are cheia pubiană potrivită, dar are nevoie de acces la computer pentru al obține.
Poate fi mai sigur?
Puteți combina o parolă cu fișiere cheie. Urmați pașii de mai sus, dar introduceți o expresie de acces puternică. Acum, atunci când vă conectați peste SSH sau utilizați SCP, veți avea nevoie de fișierul cheie propriu-zis precum și fraza de acces corespunzătoare.
După ce introduceți fraza de acces o dată, nu vi se va mai solicita până când nu vă închideți sesiunea. Asta inseamna ca pentru prima data cand SSH / SCP va trebui sa introduceti parola, toate actiunile ulterioare nu vor fi necesare. După ce vă deconectați de la computer (nu de la telecomandă) sau închideți fereastra terminalului, atunci va trebui să o introduceți din nou. În acest fel, nu sacrificați cu adevărat securitatea, dar, de asemenea, nu sunteți hărțuit pentru parole tot timpul.
Pot reutiliza perechea de chei publice / private?
Aceasta este o idee foarte rea. Dacă cineva îți găsește parola și folosești aceeași parolă pentru toate conturile, atunci ei au acces la toate acele conturi. În mod similar, fișierul dvs. privat este, de asemenea, super-secret și important. (Pentru mai multe informații, aruncați o privire la modul de recuperare după ce parola dvs. de e-mail este compromisă)
Cel mai bine este să creați perechi de chei noi pentru fiecare computer și cont pe care doriți să le conectați. În acest fel, dacă una dintre cheile dvs. private este prinsă într-un fel, atunci veți compromite un singur cont pe un computer la distanță.
De asemenea, este foarte important să rețineți că toate cheile dvs. private sunt stocate în același loc: în ~ / .ssh / pe computer, puteți utiliza TrueCrypt pentru a crea un container securizat, criptat, apoi creați link-uri de simbol în ~ / .ssh / director. În funcție de ceea ce fac, folosesc această metodă super-paranoică super-sigură pentru a-mi pune mintea la ușurință.
Ați folosit SCP în orice scenariu? Utilizați fișiere cheie în locul parolelor? Împărtășiți-vă experiența proprie cu alți cititori în comentarii!