- scp-komento – Suojattu kopiointi
- Scp:n asentaminen
- Scp:n käyttö – perussyntaksi
- scp-komentoesimerkkejä
- 1. Sanallinen ulostulo
- 2. Siirrä useita tiedostoja
- 3. Siirrä useita tiedostoja. Kopioi koko hakemisto (rekursiivisesti)
- 4. Kopioi tiedostoja kahden etäisännän välille
- 5. Nopeuta siirtoa pakkauksella
- 6. Rajoita kaistanleveyden käyttöä
- 7. Rajoita kaistanleveyden käyttöä $ scp -vrC -l 400 ~/Downloads :/root/Downloads . Yhteyden muodostaminen eri porttinumeroon etäisännällä
- 8. Tiedoston attribuuttien säilyttäminen
- 9. Hiljainen tila
- 10. Määritä identiteettitiedosto
- 11. Käytä eri ssh_config-tiedostoa
- 12. Käytä eri salausta
- Yhteenveto
scp-komento – Suojattu kopiointi
Scp (Secure Copy) on komentorivityökalu tiedostojen kopioimiseen tai siirtämiseen isäntien välillä. Se käyttää samanlaista turvamekanismia kuin ssh-ohjelma.
Tosiasiassa se käyttää ssh-yhteyttä taustalla tiedostonsiirron suorittamiseen. scp viittaa sekä ”protokollaan”, joka määrittelee, miten turvallisen kopioinnin pitäisi toimia, että ”ohjelmaan” (komentoon), joka on asennettu osaksi OpenSSH-työkalusarjaa.
Tässä nopeassa opetusohjelmassa tarkastelemme muutamaa esimerkkiä scp-komennosta ja sitä, miten sitä voidaan käyttää tiedostojen turvalliseen siirtoon.
Scp:n asentaminen
Scp on yleensä asennettu oletusarvoisesti useimpiin linux-jakelupalveluihin osana openssh-paketteja. Esimerkiksi ubuntussa/debianissa openssh-client-paketti tarjoaa scp-ohjelman.
$ dpkg -L openssh-client | grep scp/usr/bin/scp/usr/share/man/man1/scp.1.gz
OpenSSH-paketti tarjoaa ssh-, scp- ja sftp-ohjelmat sekä monia muita työkaluja. Meidän ei siis tarvitse tehdä tässä mitään ylimääräistä, paitsi käyttää ja opetella ohjelmaa.
Scp:n käyttö – perussyntaksi
Scp:n perussyntaksi on hyvin yksinkertainen muistaa. Se näyttää tältä
$ scp source_file_path destination_file_path
Hänestä riippuen tiedostopolun tulee sisältää täydellinen isäntäosoite, porttinumero, käyttäjätunnus ja salasana sekä hakemistopolku.
Jos siis ”lähetät” tiedoston paikalliselta koneeltasi etäkoneelle (uploading), syntaksi näyttää tältä
$ scp ~/my_local_file.txt _host.com:/some/remote/directory
Kun kopioit tiedoston etäkoneelta paikalliselle koneelle (downloading), se näyttää juuri päinvastaiselta
$ scp _host.com:/some/remote/directory ~/my_local_file.txt# just download the file$ scp :/some/path/file.txt .
Tässä on aika lailla kyse scp:n käytöstä tavallisiin tehtäviin. Sen lisäksi on pari ylimääräistä vaihtoehtoa ja toimintoa, joita scp tukee. Otetaanpa nopea katsaus niihin.
Ja kyllä, oletusarvoisesti scp korvaa aina tiedostot määränpäässä. Jos haluat välttää sen, käytä tehokkaampaa työkalua nimeltä rsync.
scp-komentoesimerkkejä
1. Sanallinen ulostulo
Sanallisella ulostulolla scp-ohjelma tulostaisi paljon tietoa siitä, mitä se tekee taustalla. Tästä on usein hyötyä, kun ohjelma epäonnistuu tai ei pysty suorittamaan pyyntöä loppuun. Tällöin verbose-tuloste osoittaisi tarkan kohdan, jossa ohjelma ajautui ongelmiin.
$ scp -v ~/test.txt :/root/help2356.txtExecuting: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txtOpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013debug1: Reading configuration data /home/enlightened/.ssh/configdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 192.168.1.3 port 22.debug1: Connection established...... OUTPUT TRUNCATED
Tuloste olisi suuri ja sisältäisi yksityiskohtaista tietoa siitä, miten yhteys muodostetaan, mitä konfiguraatio- ja identiteettitiedostoja käytetään ja niin edelleen.
2. Siirrä useita tiedostoja
Monia tiedostoja voidaan määrittää välilyönnillä erotettuna näin
$ scp foo.txt bar.txt :/path/directory/
Kopioida useita tiedostoja etäisännästä nykyiseen paikalliseen hakemistoon
$ scp :/path/directory/\{foo.txt,bar.txt\} .$ scp :~/\{abc.log,cde.txt\} .
3. Siirrä useita tiedostoja. Kopioi koko hakemisto (rekursiivisesti)
Kopioidaksesi kokonaisen hakemiston yhdeltä isännältä toiselle käytä r-kytkintä ja määritä hakemisto
$ scp -v -r ~/Downloads :/root/Downloads
4. Kopioi tiedostoja kahden etäisännän välille
Scp voi kopioida tiedostoja myös yhdeltä etäisännältä toiselle etäisännälle
$ scp :/some/remote/dir/foobar.txt :/some/remote/dir/
5. Nopeuta siirtoa pakkauksella
Erittäin siisti vaihtoehto nopeuttaa siirtoa säästääksesi aikaa ja kaistanleveyttä. Sinun tarvitsee vain käyttää C-vaihtoehtoa ottaaksesi pakkauksen käyttöön. Tiedostot pakataan lennossa ja puretaan määränpäässä.
$ scp -vrC ~/Downloads :/root/Downloads
Yllä olevassa esimerkissä siirrettiin koko hakemisto pakkauksen ollessa käytössä. Nopeushyöty riippuisi siitä, kuinka paljon tiedostoja voitaisiin pakata.
6. Rajoita kaistanleveyden käyttöä
Jos et halua scp:n vievän koko käytettävissä olevaa kaistanleveyttä, käytä l-vaihtoehtoa rajoittaaksesi enimmäisnopeutta Kbit/s.
$ scp -vrC -l 400 ~/Downloads :/root/Downloads
7. Rajoita kaistanleveyden käyttöä
$ scp -vrC -l 400 ~/Downloads :/root/Downloads
. Yhteyden muodostaminen eri porttinumeroon etäisännällä
Jos etäpalvelimella on ssh-demoni, joka toimii eri portissa (oletusarvo on 22), sinun on käskettävä scp:tä käyttämään kyseistä porttinumeroa käyttämällä ’-P’-vaihtoehtoa.
$ scp -vC -P 2200 ~/test.txt :/some/path/test.txt
8. Tiedoston attribuuttien säilyttäminen
Vaihtoehto ’-p’-vaihtoehto (pienaakkoset) säilyttäisi alkuperäisen tiedoston muokkausajankohdan, hakuajankohdan ja -tilat.
$ scp -C -p ~/test.txt :/some/path/test.txt
9. Hiljainen tila
Hiljaisessa tilassa (’-q’-vaihtoehto ) scp-ulostulo tukahdutettaisiin, ja etenemismittari sekä varoitus- ja diagnoosiviestit poistettaisiin käytöstä.
$ scp -vCq ~/test.txt :/some/path/test.txt
10. Määritä identiteettitiedosto
Käytettäessä avainpohjaista (salasanatonta) todennusta, sinun on määritettävä identiteettitiedosto, joka sisältää yksityisen avaimen. Tämä vaihtoehto välitetään suoraan ssh-komentoon ja toimii samalla tavalla.
$ scp -vCq -i private_key.pem ~/test.txt :/some/path/test.txt
11. Käytä eri ssh_config-tiedostoa
Valinnalla ’-F’ voit määrittää eri ssh_config-tiedoston.
$ scp -vC -F /home/user/my_ssh_config ~/test.txt :/some/path/test.txt
12. Käytä eri salausta
Scp käyttää oletusarvoisesti AES-salausta/salausta. Joskus saatat haluta käyttää eri salakirjoitusta. Eri salakirjoituksen käyttäminen voi nopeuttaa siirtoprosessia. Esimerkiksi blowfish ja arcfour ovat tunnetusti nopeampia kuin AES (mutta vähemmän turvallisia).
$ scp -c blowfish -C ~/local_file.txt :/remote/path/file.txt
Yllä olevassa esimerkissä käytämme blowfish-salausta yhdessä pakkauksen kanssa. Tämä voi antaa merkittävän nopeuslisäyksen riippuen käytettävissä olevasta kaistanleveydestä.
Yhteenveto
Vaikka scp on erittäin tehokas tiedostojen turvallisessa siirrossa, siitä puuttuvat tiedostojen synkronointityökalun tarvittavat ominaisuudet. Se voi vain kopioida ja liittää kaikki mainitut tiedostot yhdestä paikasta toiseen.
Tehokkaampi työkalu on Rsync, joka ei ainoastaan tarjoa kaikkia scp:n toimintoja, vaan lisää siihen lisää ominaisuuksia, joiden avulla tiedostot voidaan älykkäästi synkronoida kahden isäntäkoneen välillä. Se voi esimerkiksi tarkistaa ja ladata vain muutetut tiedostot, jättää olemassa olevat tiedostot huomiotta ja niin edelleen.
Vastaa