SCP Linux Command - Siirrä tiedostoja turvallisesti Linuxissa


Linux-järjestelmänvalvojien tulee tuntea komentoriviympäristö. Koska GUI (Graphical User Interface) -tilaa ei yleensä asenneta Linux-palvelimissa.

SSH saattaa olla suosituin protokolla, jonka avulla Linux-järjestelmänvalvojat voivat hallita palvelimia etäturvallisesti. SSH-komennolla on sisäänrakennettu SCP-komento, jota käytetään tiedostojen kopioimiseen palvelimien välillä turvallisesti.

SCP-komennon perussyntaksi

Alla oleva komento kopioi "lähdetiedoston_nimi" kohtaan "destination_folder" kohdassa "destination_host" käyttämällä "käyttäjätunnusta". " tili.

scp source_file_name username@destination_host:destination_folder

SCP-komennossa on monia parametreja, joita voit käyttää. Tässä ovat parametrit, joita voidaan käyttää päivittäisessä käytössä.

Siirrä tiedostoja turvallisesti Linuxissa

SCP-peruskomento ilman parametreja kopioi tiedostot taustalla. Käyttäjät eivät näe mitään, ellei prosessi ole valmis tai jokin virhe ilmestyy.

Voit tulostaa virheenkorjaustiedot näytölle parametrilla "-v". Se voi auttaa sinua korjaamaan yhteys-, todennus- ja konfigurointiongelmia.

Kopioi tiedosto paikallisesta isännästä etäpalvelimelle

Seuraava komento kopioi tiedoston "scp-cheatsheet.pdf" paikallisesta Linux-etäjärjestelmästä /home/tecmint-hakemistoon.

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

Näytetulos:

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
...

Kopioi tiedosto etäisännästä paikalliseen isäntään

Seuraava komento kopioi tiedoston "ssh-cheatsheet.pdf" etäisännästä paikalliseen järjestelmään /home/tecmint-hakemistossa.

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

Näytetulos:

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
...

Kopioi tiedosto etäisännästä toiseen isäntään

Seuraava komento kopioi tiedoston "ssh-cheatsheet.pdf" etäisännästä toiseen etäisäntäjärjestelmään /home/tecmint-hakemistossa.

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

Kopioi tiedostot, joissa on alkuperäinen luontipäivämäärä ja -aika

Parametri "-p" säilyttää tiedostojen alkuperäiset muokkaukset ja käyttöajat kopioitaessa tiedostoja sekä arvioitu aika ja yhteysnopeus näkyvät näytöllä.

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

Näytetulos:

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

Scp-pakkaus tiedostoja kopioitaessa

Yksi parametreista, jotka voivat nopeuttaa tiedostojen siirtoa, on parametri "-C", jota käytetään tiedostojen pakkaamiseen liikkeellä ollessasi. Ainutlaatuista on, että pakkaus tapahtuu vain verkossa. Kun tiedosto on saapunut kohdepalvelimelle, se palaa alkuperäiseen kokoonsa kuten ennen pakkausta.

Katso nämä käskyt. Se käyttää yhtä 93 Mt tiedostoa.

scp -pv messages.log [email :.

Näytetulos:

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

Tiedostojen kopioiminen ilman -C-parametria johtaa 1661,3 sekuntiin. Voit verrata tulosta alla olevaan komentoon käyttämällä parametria "-C".

scp -Cpv messages.log [email :.

Näytetulos:

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

Kuten näet, kun käytät pakkausta, siirto tapahtuu 162,5 sekunnissa. Se on 10 kertaa nopeampi kuin ilman -C-parametria. Jos kopioit paljon tiedostoja verkon yli, parametri “-C” auttaa vähentämään tarvitsemaasi kokonaisaikaa.

Asia, joka meidän pitäisi huomata, on, että pakkausmenetelmä ei toimi missään tiedostossa. Kun lähdetiedosto on jo pakattu, et löydä sieltä mitään parannusta. Tiedostot, kuten .zip, .rar, pictures ja .iso eivät vaikuta " -C"-parametri.

Vaihda SCP-salaus tiedostojen salaamiseksi

Oletuksena SCP käyttää tiedostojen salaamiseen "AES-128". Jos haluat vaihtaa toiseen salaukseen sen salaamiseksi, voit käyttää parametria "-c".

Katso tämä komento.

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

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

Yllä oleva komento käskee SCP:tä käyttämään 3des-algoritmia tiedoston salaamiseen. Ole varovainen, että tämä parametri käyttää "-c" eikä "-C".

Kaistanleveyden käytön rajoittaminen SCP-komennolla

Toinen parametri, joka voi olla hyödyllinen, on parametri "-l". Parametri -l rajoittaa käytettävää kaistanleveyttä. Siitä on hyötyä, jos teet automaattisen komentosarjan kopioidaksesi paljon tiedostoja, mutta et halua, että SCP-prosessi tyhjentää kaistanleveyden.

scp -l 400 Label.pdf [email :.

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

400-arvo parametrin -l takana tarkoittaa, että rajoitamme SCP-prosessin kaistanleveyden vain 50 kilotavuun/ sek.

Yksi asia on muistaa, että kaistanleveys määritetään kilobitteina/s (kbps). Se tarkoittaa, että 8 bittiä vastaa 1 tavua.

Vaikka SCP laskee kilotavuina/s (KB/s). Joten jos haluat rajoittaa kaistanleveytesi SCP:hen enintään 50 KB/s, sinun on asetettava se arvoon 50 x 8=400.

SCP eri portilla

Yleensä SCP käyttää porttia 22 oletusporttina, mutta turvallisuussyistä voit vaihtaa portin toiseen porttiin. Käytämme esimerkiksi porttia 2249.

Sitten komennon pitäisi olla tällainen.

scp -P 2249 Label.pdf [email :.

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

Varmista, että se käyttää isoa kirjainta "P" ei "p", koska "p" on jo käytössä säilytetyissä aioissa ja tiloissa.

SCP – Kopioi tiedostoja ja hakemistoja rekursiivisesti

Joskus meidän on kopioitava hakemisto ja kaikki sen sisällä olevat tiedostot/hakemistot. On parempi, jos voimme tehdä sen yhdellä komennolla käyttämällä parametria "-r", joka kopioi koko hakemiston rekursiivisesti.

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

Kun kopiointiprosessi on valmis, kohdepalvelimelta löydät hakemiston nimeltä dokumentit ja kaikki tiedostot. Kansio "asiakirjat" luodaan automaattisesti.

SCP – Poista edistymisviestit käytöstä

Jos et halua nähdä SCP:n edistymismittaria ja varoitus-/diagnostiikkaviestejä, voit poistaa sen käytöstä parametrilla "-q". Tässä on esimerkki.

scp -q Label.pdf [email :.

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

Kuten näet, salasanan syöttämisen jälkeen SCP-prosessista ei ole tietoa. Kun prosessi on valmis, näet kehotteen uudelleen.

SCP – kopioi tiedostot välityspalvelimen avulla

Välityspalvelinta käytetään yleensä toimistoympäristössä. Luonnollisesti SCP ei ole määritetty välityspalvelinta. Kun ympäristösi käyttää välityspalvelinta, sinun on kerrottava SCP kommunikoidaksesi välityspalvelimen kanssa.

Tässä skenaario. Välityspalvelimen osoite on 10.0.96.6 ja välityspalvelimen portti 8080. Välityspalvelin toteutti myös käyttäjän todennuksen. Ensin sinun on luotava "~/.ssh/config"-tiedosto. Toiseksi laitat tämän komennon sen sisään.

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

Sitten sinun on luotava tiedosto "~/.ssh/proxyauth", joka sisältää.

myusername:mypassword

Sen jälkeen voit tehdä SCP:tä läpinäkyvästi tavalliseen tapaan.

Huomaa, että korkkiruuvia ei ehkä ole vielä asennettu järjestelmääsi. Minun on asennettava se Linux Mintiin ensin tavallisella Linux Mint -asennusmenettelyllä.

apt-get install corkscrew

Muissa yum-pohjaisissa järjestelmissä käyttäjät voivat asentaa korkkiruuvin käyttämällä seuraavaa yum-komentoa.

yum install corkscrew

Toinen asia on, että koska ~/.ssh/proxyauth-tiedosto sisältää "käyttäjänimesi" ja "salasanasi" selkeässä tekstimuodossa , varmista, että vain sinä pääset käyttämään tiedostoa.

Valitse erilainen ssh_config-tiedosto

Mobiilikäyttäjille, jotka vaihtavat usein yrityksen verkkojen ja julkisten verkkojen välillä, on kärsimystä muuttaa aina asetuksia SCP:ssä. On parempi, jos voimme lisätä tarpeisiimme sopivan toisen ssh_config-tiedoston.

Välityspalvelinta käytetään yrityksen verkossa, mutta ei julkisessa verkossa, ja vaihdat verkkoa säännöllisesti.

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

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

Oletuksena "ssh_config"-tiedosto per käyttäjä sijoitetaan "~/.ssh/config"-kansioon. Tietyn ssh_config-tiedoston luominen välityspalvelimen kanssa helpottaa vaihtamista verkkojen välillä.

Kun olet yrityksen verkossa, voit käyttää parametria "-F". Kun olet julkisessa verkossa, voit ohittaa parametrin "-F".

Siinä kaikki SCP:stä. Saat lisätietoja SCP:n man-sivuilta. Voit vapaasti jättää kommentteja ja ehdotuksia.