6Aug

Slik fjerner du eksternt filer over SSH uten å skrive inn passordet ditt

SSH er en livredder når du trenger fjernstyring av en datamaskin, men visste du at du også kan laste opp og laste ned filer også?Ved hjelp av SSH-taster kan du hoppe over å måtte skrive inn passord og bruke dette til skript!

Denne prosessen fungerer på Linux og Mac OS, forutsatt at de er riktig konfigurert for SSH-tilgang. Hvis du bruker Windows, kan du bruke Cygwin til å få Linux-lignende funksjonalitet, og med litt justering vil SSH også kjøre.

Kopierer filer over SSH

Sikker kopi er en veldig nyttig kommando, og det er veldig enkelt å bruke. Basisformatet for kommandoen er som følger:

scp [alternativer] original_file destination_file

Den største kickeren er hvordan du formaterer den eksterne delen. Når du adresserer en ekstern fil, må du gjøre det på følgende måte:

user @ server: sti /to/-fil

Serveren kan være en URL eller en IP-adresse. Dette følges av et kolon, deretter banen til den aktuelle filen eller mappen. La oss se på et eksempel.

scp -P 40050 Desktop / url.txt [email protected]: ~ /Desktop/ url.txt

Denne kommandoen inneholder [-P] -flagget( merk at det er en hovedstad P).Dette lar meg spesifisere et portnummer i stedet for standard 22. Dette er nødvendig for meg på grunn av måten jeg har konfigurert systemet på.

Deretter er min opprinnelige fil "url.txt" som er inne i en katalog som heter "Desktop".Destinasjonsfilen er i "~ /Desktop/ url.txt" som er den samme som "/user/yatri/Desktop/ url.txt".Denne kommandoen blir drevet av brukeren "yatri" på den eksterne datamaskinen "192.168.1.50".

Hva hvis du trenger å gjøre det motsatte? Du kan også kopiere filer fra en ekstern server på samme måte.

Her har jeg kopiert en fil fra den eksterne datamaskinens "~ /Desktop/" -mappe til datamaskinens "Desktop" -mappe.

Hvis du vil kopiere hele kataloger, må du bruke flagget [-r]( merk at det er en liten bokstav r).

Du kan også kombinere flagg. I stedet for

scp -P -r. ..

Du kan bare gjøre

scp-Pr. ..

Den tøffeste delen her er at fanefølge ikke alltid fungerer, så det er nyttig å ha en annen terminal med en SSH-sesjon som kjører slik at du vethvor å sette ting.

SSH og SCP Uten passord

Sikker kopi er flott. Du kan sette den i skript og få den til å gjøre sikkerhetskopier til eksterne datamaskiner. Problemet er at du kanskje ikke alltid er rundt for å skrive inn passordet. Og la oss være ærlige, det er en virkelig stor smerte å sette inn passordet ditt til en ekstern datamaskin som du åpenbart har tilgang til hele tiden.

Vel, vi kan komme seg rundt ved hjelp av passord ved å bruke nøkkelfiler. Vi kan få datamaskinen til å generere to nøkkelfiler - ett publikum som tilhører den eksterne serveren, og en privat som er på datamaskinen og må være sikker - og disse vil bli brukt i stedet for et passord. Ganske praktisk, ikke sant?

På datamaskinen skriver du inn følgende kommando:

ssh-keygen -t rsa

Dette genererer de to tastene og legger dem inn:

~ /.ssh/

med navnene "id_rsa" for din private nøkkel og "id_rsa.pub" fordin offentlige nøkkel.

Etter at du har skrevet inn kommandoen, blir du spurt hvor du skal lagre nøkkelen. Du kan trykke Enter for å bruke de ovennevnte standardinnstillingene.

Deretter blir du bedt om å skrive inn en passordfrase. Trykk Enter for å la dette være tomt, og gjør det igjen når det ber om bekreftelse. Det neste trinnet er å kopiere den offentlige nøkkelfilen til den eksterne datamaskinen. Du kan bruke scp til å gjøre dette:

Destinasjonen for din offentlige nøkkel er på den eksterne serveren, i følgende fil:

~ /.ssh/ authorized_keys2

Etterfølgende offentlige nøkler kan legges til denne filen, mye som ~ /.ssh/ known_hosts-filen. Dette betyr at hvis du vil legge til en annen offentlig nøkkel for kontoen din på denne serveren, kopierer du innholdet til den andre id_rsa.pub-filen til en ny linje i den eksisterende authorized_keys2-filen.

Sikkerhetshensyn

Er dette ikke så trygt som et passord?

I praktisk forstand, egentlig ikke. Den private nøkkelen som genereres, lagres på datamaskinen du bruker, og den overføres aldri, ikke engang for å bli verifisert. Denne private nøkkelen KUN samsvarer med den ene offentlige nøkkelen, og forbindelsen må startes fra datamaskinen som har den private nøkkelen. RSA er ganske sikker og bruker som standard en 2048 bitlengde.

Det er faktisk ganske likt i teorien til å bruke passordet ditt. Hvis noen har kjennskap til passordet ditt, går sikkerheten ut av vinduet. Hvis noen har din private nøkkelfil, blir sikkerheten tapt på en hvilken som helst datamaskin som har den tilhørende pubic nøkkelen, men de trenger tilgang til datamaskinen din for å få den.

Kan dette være sikrere?

Du kan kombinere et passord med nøkkelfiler. Følg trinnene ovenfor, men skriv inn en sterk passordfrase. Nå, når du kobler over SSH eller bruker SCP, trenger du den riktige private nøkkelfilen samt den riktige passordsenken.

Når du først har skrevet inn passordet ditt, blir du ikke bedt om det igjen før du lukker økten. Det betyr at første gang du SSH / SCP, må du skrive inn passordet ditt, men alle påfølgende handlinger krever ikke det. Når du logger deg ut av datamaskinen din( ikke den eksterne) eller lukker terminalvinduet, må du skrive det inn igjen. På denne måten oppnår du ikke virkelig sikkerhet, men du er heller ikke trakassert for passord hele tiden.

Kan jeg gjenbruke det offentlige / private nøkkelparet?

Dette er en veldig dårlig ide. Hvis noen finner passordet ditt, og du bruker det samme passordet for alle kontoene dine, har de nå tilgang til alle disse kontoene. Tilsvarende er din private nøkkelfil også superhemmelig og viktig.(For mer informasjon, ta en titt på Hvordan gjenopprette etter at passordet ditt er kompromittert).

Det er best å lage nye nøkkelpar for hver datamaskin og konto du vil koble sammen. På den måten, hvis en av dine private nøkler blir tatt på en eller annen måte, så vil du bare kompromittere en konto på en ekstern datamaskin.

Det er også veldig viktig å merke seg at alle dine private nøkler er lagret på samme sted: i ~ /.ssh/ på datamaskinen din, kan du bruke TrueCrypt til å lage en sikker, kryptert container og deretter lage symlinks i din /.ssh/ katalog. Avhengig av hva jeg gjør, bruker jeg denne superparanoide supersikkerhetsmetoden for å sette meg i ro.

Har du brukt SCP i noen skript? Bruker du nøkkelfiler i stedet for passord? Del din egen ekspertise med andre lesere i kommentarene!