SCP Linux komanda – saugiai perkelkite failus sistemoje Linux


Linux administratoriai turėtų būti susipažinę su komandinės eilutės aplinka. Kadangi GUI (grafinė vartotojo sąsaja) režimas Linux serveriuose nėra įprastas diegiamas.

SSH gali būti populiariausias protokolas, leidžiantis „Linux“ administratoriams nuotoliniu būdu saugiai valdyti serverius. Su komanda SSH integruota komanda SCP, kuri naudojama failams (-ams) saugiai kopijuoti iš vieno serverio į kitą.

Pagrindinė SCP komandos sintaksė

Toliau pateikta komanda bus nuskaityta kaip kopija „source_file_name“ į „destination_folder“ esantį „destination_host“, naudojant „naudotojo vardą “ paskyrą.

scp source_file_name username@destination_host:destination_folder

Komandoje SCP yra daug parametrų, kuriuos galite naudoti. Čia yra parametrai, kurie gali būti naudojami kasdien.

Saugiai perkelkite failus „Linux“.

Pagrindinė komanda SCP be parametrų nukopijuos failus fone. Vartotojai nieko nematys, nebent procesas bus baigtas arba atsiras klaida.

Norėdami išspausdinti derinimo informaciją ekrane, galite naudoti parametrą „-v“. Tai gali padėti derinti ryšio, autentifikavimo ir konfigūracijos problemas.

Nukopijuokite failą iš vietinio pagrindinio kompiuterio į nuotolinį serverį

Ši komanda nukopijuoja failą „scp-cheatsheet.pdf“ iš vietinės į nuotolinę „Linux“ sistemą, esančią /home/tecmint kataloge.

scp -v scp-cheatsheet.pdf [email :/home/tecmint/.

Išvesties pavyzdys:

Executing: program /usr/bin/ssh host 192.168.0.183, user tecmint, command scp -v -t /home/tecmint/.
OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.0.183 [192.168.0.183] port 22.
debug1: Connection established.
debug1: identity file /home/tecmint/.ssh/id_rsa type -1
debug1: identity file /home/tecmint/.ssh/id_rsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_dsa type -1
debug1: identity file /home/tecmint/.ssh/id_dsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519 type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519_sk type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/tecmint/.ssh/id_xmss type -1
...

Nukopijuokite failą iš nuotolinio pagrindinio kompiuterio į vietinį pagrindinį kompiuterį

Ši komanda nukopijuoja failą „ssh-cheatsheet.pdf“ iš nuotolinio pagrindinio kompiuterio į vietinę sistemą /home/tecmint kataloge.

scp -v [email :/home/ravi/ssh-cheatsheet.pdf /home/tecmint/.

Išvesties pavyzdys:

Executing: program /usr/bin/ssh host 192.168.0.183, user tecmint, command scp -v -f /home/ravi/ssh-cheatsheet.pdf
OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.0.183 [192.168.0.183] port 22.
debug1: Connection established.
debug1: identity file /home/tecmint/.ssh/id_rsa type -1
debug1: identity file /home/tecmint/.ssh/id_rsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_dsa type -1
debug1: identity file /home/tecmint/.ssh/id_dsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/tecmint/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519 type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519-cert type -1
debug1: identity file /home/tecmint/.ssh/id_ed25519_sk type -1
...

Nukopijuokite failą iš nuotolinio kompiuterio į kitą pagrindinį kompiuterį

Ši komanda nukopijuoja failą „ssh-cheatsheet.pdf“ iš nuotolinio pagrindinio kompiuterio į kitą nuotolinio pagrindinio kompiuterio sistemą, esančią /home/tecmint kataloge.

scp -v [email :/home/ravi/ssh-cheatsheet.pdf [email :/home/anusha/.

Nukopijuokite failus su originalia sukūrimo data ir laiku

Parametras „-p“ išsaugos pradinius failų modifikavimo ir prieigos laikus, o kopijuodami failus, ekrane bus rodomas numatomas laikas ir ryšio greitis.

scp -p scp-cheatsheet.pdf [email :/home/tecmint/.

Išvesties pavyzdys:

[email 's password: 
scp-cheatsheet.pdf                                                                                                                                                                 100%  531   721.4KB/s   00:00    

Scp suspaudimas kopijuojant failus

Vienas iš parametrų, galinčių pagreitinti failų perdavimą, yra parametras „-C“, kuris naudojamas failams suspausti keliaujant. Unikalus dalykas yra tai, kad suspaudimas vyksta tik tinkle. Kai failas pateks į paskirties serverį, jis bus grąžintas į pradinį dydį, kaip ir prieš suspaudimą.

Pažvelkite į šias komandas. Jis naudoja vieną 93 Mb failą.

scp -pv messages.log [email :.

Išvesties pavyzdys:

Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t.
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: Sending command: scp -v -p -t.
File mtime 1323853868 atime 1380425711
Sending file timestamps: T1323853868 0 1380425711 0
messages.log 100% 93MB 58.6KB/s 27:05
Transferred: sent 97614832, received 25976 bytes, in 1661.3 seconds
Bytes per second: sent 58758.4, received 15.6
debug1: Exit status 0

Kopijuojant failus be parametro „-C“, bus per 1661,3 sekundės. Galite palyginti rezultatą su toliau pateikta komanda naudodami parametrą „-C“.

scp -Cpv messages.log [email :.

Išvesties pavyzdys:

Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t.
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: channel 0: new [client-session]
debug1: Sending command: scp -v -p -t .
File mtime 1323853868 atime 1380428748
Sending file timestamps: T1323853868 0 1380428748 0
Sink: T1323853868 0 1380428748 0
Sending file modes: C0600 97517300 messages.log
messages.log 100% 93MB 602.7KB/s 02:38
Transferred: sent 8905840, received 15768 bytes, in 162.5 seconds
Bytes per second: sent 54813.9, received 97.0
debug1: Exit status 0
debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09
debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48

Kaip matote, kai naudojate suspaudimą, perkėlimo procesas įvyksta per 162,5 sekundės. Tai 10 kartų greičiau nei nenaudojant parametro „-C“. Jei tinkle kopijuojate daug failų, parametras „-C“ padės sumažinti bendrą reikalingą laiką.

Reikėtų pastebėti, kad glaudinimo metodas neveiks jokiuose failuose. Kai šaltinio failas jau yra suspaustas, ten nerasite jokio patobulinimo. Failams, pvz., .zip, .rar, pictures ir .iso failams įtakos neturės „ -C“ parametrą.

Pakeiskite SCP šifrą, kad šifruotumėte failus

Pagal numatytuosius nustatymus SCP failams šifruoti naudoja „AES-128“. Jei norite pakeisti į kitą šifrą, kad jį užšifruotumėte, galite naudoti parametrą „-c“.

Pažvelkite į šią komandą.

scp -c 3des Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

Aukščiau pateikta komanda nurodo SCP naudoti 3des algoritmą, kad užšifruotų failą. Būkite atsargūs, kad šis parametras naudotų „-c“, o ne „-C“.

Pralaidumo naudojimo ribojimas naudojant SCP komandą

Kitas parametras, kuris gali būti naudingas, yra parametras „-l“. Parametras „-l“ apribos naudojamą pralaidumą. Tai bus naudinga, jei atliksite automatizavimo scenarijų, kad nukopijuotumėte daug failų, tačiau nenorite, kad pralaidumas būtų išeikvotas dėl SCP proceso.

scp -l 400 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 50.3KB/s 01:13

400 reikšmė už parametro „-l“ reiškia, kad ribojame SCP proceso pralaidumą iki 50 KB/ sek.

Reikia atsiminti, kad pralaidumas nurodytas kilobitais/sek (kb/s). Tai reiškia, kad 8 bitai yra lygūs 1 baitui.

Nors SCP skaičiuojama kilobaitu/sek (KB/s). Taigi, jei norite apriboti pralaidumą iki SCP maksimalaus tik 50 KB/s, turite jį nustatyti į 50 x 8=400.

SCP su skirtingu prievadu

Paprastai SCP kaip numatytąjį prievadą naudoja 22, tačiau saugumo sumetimais galite pakeisti prievadą į kitą prievadą. Pavyzdžiui, naudojame prievadą 2249.

Tada komanda turėtų būti tokia.

scp -P 2249 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 262.3KB/s 00:14

Įsitikinkite, kad jame naudojama didžioji raidė „P“, o ne „p“, nes „p“ jau naudojama išsaugotiems laikams ir režimams.

SCP – rekursyviai kopijuokite failus ir katalogus

Kartais mums reikia nukopijuoti katalogą ir visus jame esančius failus/katalogus. Bus geriau, jei galėsime tai padaryti viena komanda, naudodami parametrą „-r“, kuris rekursyviai nukopijuoja visą katalogą.

scp -r documents [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13
scp.txt 100% 10KB 9.8KB/s 00:00

Kai kopijavimas bus baigtas, paskirties serveryje rasite katalogą pavadinimu „documents“ su visais failais. Aplankas „dokumentai“ sukuriamas automatiškai.

SCP – išjungti pažangos pranešimus

Jei nuspręsite nematyti eigos matuoklio ir įspėjimo/diagnostikos pranešimų iš SCP, galite jį išjungti naudodami parametrą „-q“. Štai pavyzdys.

scp -q Label.pdf [email :.

[email 's password:
pungki@mint ~/Documents $

Kaip matote, įvedus slaptažodį nėra informacijos apie SCP procesą. Kai procesas bus baigtas, vėl pamatysite raginimą.

SCP – kopijuoti failus naudojant tarpinį serverį

Tarpinis serveris paprastai naudojamas biuro aplinkoje. Iš esmės SCP nėra sukonfigūruotas tarpinis serveris. Kai jūsų aplinka naudoja tarpinį serverį, turite „pasakyti“ SCP, kad galėtumėte susisiekti su tarpiniu serveriu.

Štai scenarijus. Tarpinio serverio adresas yra 10.0.96.6, o tarpinio serverio prievadas yra 8080. Tarpinis serveris taip pat įdiegė vartotojo autentifikavimą. Pirmiausia turite sukurti failą „~/.ssh/config“. Antra, įdėkite šią komandą į ją.

ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth

Tada turite sukurti failą „~/.ssh/proxyauth“, kuriame yra.

myusername:mypassword

Po to SCP galite atlikti skaidriai, kaip įprasta.

Atkreipkite dėmesį, kad kamščiatraukis gali būti dar neįdiegtas jūsų sistemoje. Savo Linux Mint turiu pirmiausia ją įdiegti, naudodamas standartinę Linux Mint diegimo procedūrą.

apt-get install corkscrew

Kitose yum pagrįstose sistemose vartotojai gali įdiegti kamščiatraukį naudodami šią yum komandą.

yum install corkscrew

Kitas dalykas, nes faile „~/.ssh/proxyauth“ yra jūsų „naudotojo vardas“ ir „slaptažodis“ aiškaus teksto formatu , įsitikinkite, kad failą galite pasiekti tik jūs.

Pasirinkite kitą ssh_config failą

Mobiliojo ryšio naudotojams, kurie dažnai keičia įmonės tinklus į viešuosius tinklus, visada bus sunku keisti SCP nustatymus. Geriau, jei galime įdėti kitą ssh_config failą, kuris atitiktų mūsų poreikius.

Tarpinis serveris naudojamas įmonės tinkle, bet ne viešajame tinkle, todėl jūs reguliariai perjungiate tinklus.

scp -F /home/pungki/proxy_ssh_config Label.pdf

[email :.
[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

Pagal numatytuosius nustatymus „ssh_config“ kiekvieno naudotojo failas bus įdėtas į „~/.ssh/config“. Sukūrus konkretų „ssh_config“ failą, suderinamą su tarpiniu serveriu, bus lengviau perjungti tinklus.

Kai esate įmonės tinkle, galite naudoti parametrą „-F“. Kai esate viešajame tinkle, galite praleisti parametrą „-F“.

Tai viskas apie SCP. Norėdami gauti daugiau informacijos, galite peržiūrėti SCP man puslapius. Nedvejodami palikite komentarus ir pasiūlymus.