Scp

From ICO wiki
Revision as of 16:53, 15 January 2015 by Jarnek (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Sissejuhatus

Scp ehk secure copy on programm mõeldud failide kopeerimiseks hostide vahel võrgus[1]. Scp on asendus ebaturvalisele rcp protokollile. Erinevalt rcp-st, kasutab scp ssh-d andmete edastamiseks. SSH(Secure Shell) võimaldab scp-l faile edastada, kasutades samu protokolle ja autentimis viise, et krüpteerida hostide vahelist ühendust ja teha kindlaks, kas edastatakse failid õigele hostile. Lisaks võib scp küsida parooli autentimiseks kui vajalik[2]. Scp on paigaldatud kõikidel Linuxi distrodel OpenSSH paketiga, seega ei ole vaja ise midagi teha peale scp kasutama õppimise. Kasutades scp-d, tasub ka meeles hoida, et olenevalt autentimis viisist , peab kopeerides olema vähemalt kasutaja masinas kuhu kopeeritakse, millel oleks vähemalt kirjutamis(w) õigus ning lugemis(r) õigus hostis, kust kopeerid. Vahest piisab ka autoriseeritud avalikust võtmest, et saada kopeerida vajalikku hosti[3].

Kuidas Töötab

Scp-d saab kasutada, et kopeerida faile väljaspool kohalikku võrku asuvast serverist või siis serverisse. Võimalik on ka kopeerida faile ühest kaugserverist teise kaugserverisse ilma, et andmeliiklus käiks läbi kasutaja arvuti, kes kopeerib. Kopeerides algset faili sihtkohta, mis on juba olemas, siis scp asendab sihtkohas oleva faili, jättes infosõlme(Infosõlm sisaldab failide kohta olulist infot - kes on faili omanik, faili pöördusrežiim (lugemise, kirjutamise või täitmise load), faili tüüp jne.) samaks. Kui sihtkohas fail ei ole olemas, siis luuakse tühi fail sihtmärgi nimega ja täidetakse algse faili sisuga.

Süntaks

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ...[[user@]host2:]file2

või

scp source_file_path destination_file_path

[4]

Võtmed

Option Tähendus
-1 Käsib scp-l kasutada prokoll 1.
-2 Käsib scp-l kasutada prokoll 2.
-3 Koopiad kahe erinevas võrgus asuva hosti vahel edastatakse läbi lokaalse hosti. Ilma selle lisavalikuta andmed kopeeritakse otse kahe erinevas võrgus oleva hosti vahel. See lisavalik keelab ka progressi mõõdiku.
-4 Käsib scp-l kasutada ainult IPv4 aadresse.
-6 Käsib scp-l kasutada ainult IPv6 aadresse.
-B Valib batch viisi, mis võimaldab scp-l töötada ilma interaktiivse klaviatuurita. See valik takistab ka kasutajal enda autentimise, sest ei saada sisestada parooli.

Seega peab üles seadma mitteinteraktiivse viisi autentimiseks.

Kuidas üles seada mitteinteraktiivne autentimine
-C Võimaldab ssh-l krüpteeritud ühenduse pakkimise. Serveri poolt saadetud andmed pakitakse kokku enne saatmist ja pakitakse lahti kliendi pool.
-c cipher Valib šifri, millega krüpteeritakse saadetavad andmed. See valik mõjutab otseselt ssh-d.
-F ssh_config Spetsifitseerib alternatiivse konfiguratsiooni faili kasutaja kohta. Valik mõjutab otseselt ssh-d.
-i identity_file Valib faili, kust saadakse salavõti, millega RSA autendib identiteedi. Valik mõjutab otseselt ssh-d.
-l limit Piirab kasutatava „bandwisth-i“, täpsustatakse Kbit/s.
-P port Spetsifitseerib millise pordiga toimub ühendus kui ühendutakse kaughostiga.
-o ssh_option Võimaldab ssh-le määrata suvandeid. Kasulik, spetsifitseerida sätteid, mille jaoks ei ole eraldi scp käsurea käskluseid.

Võimalikke suvandeid lieba siit

List erinevaid ssh_option'eid
-p Säilitab modifikatsiooni ajad, ligipääsu ajad ja režiimid originaalsest failist.
-q Keelab progressi mõõdiku ning vaigistab erinevad hoiatus ja diagnostika sõnumid.
-r Valib faili, kust saadakse salavõti, millega RSA autendib identiteedi. Valik mõjutab otseselt ssh-d.
-S program Programmi nimi, mida kasutatakse ühenduse krüpteerimiseks. Programm peab olema ühilduv ssh suvanditega.
-v Paljusõnaline režiim, mis paneb scp ja ssh trükkima silumis (debugging) sõnumeid. Aitab siluda ühenduse, autentimis ja konfiguratsiooni probleeme.


Exit koodid

Kood Tähendus
0 Õnnestus
>0 Error

Kasutus

scp [[user@]from-host:]source-file [[user@]to-host:][destination-file]


from-host

Hosti nimi või IP aadress, kus asub kopeeritav fail, selle võib välja jätta, kui from-host on see host, kus sisestatakse käsud.

user

User spetsifitseerib seda kasutajat, kellel on õigus ligi pääseda failile ja kaustale, mida kopeeritakse from-host puhul ning kasutajat, kellel on õigus kirjutada to-host hostis.

source-file

Fail või failid, mida hakatakse kopeerima teise hosti, kopeerida võib ka kataloogi, sellel puhul peab aga kasutama -r võtit, et kopeerideks tuleks kaasa ka kataloogi sisu.

destination-file

On nimi, mis antakse kopeeritavale failile to-host hostis, kui destination-file ei spetsifitseerita, siis kõik kopeeritavad failid jätavad oma vanad nimed.

Näited

Kasutades scp-d, peab meeles pidama, et kui tahad ühest hostist teise faile kopeerida, siis seal hostis, kuhu tahad kopeerida, peab sellel kasutajal kellena sisse logid, olema kirjutamisõigused(write), kas siis terve hosti piires või siis ainult spetsiifilises kausta.


scp minufail.txt nimi@domeeninimi.com:minufail.txt

Kopeerib faili minufail.txt kaughosti domeeninimi.com, kasutades kasutajanime nimi, et sisse logida.


scp minukasutajanimi@minukaughost.com:/home/kaust/*

Kopeerib kõik failid kaugkaustas /home/kaust, mis asuvad kaughostis minukaughost.com kohalikku kausta, kus hetkel ollakse (seda saab teada käsuga pwd).


scp -r kasutajanimi@minuhost.com:/home/kasutajanimi/documents /home/kasutajanimi/downloads/documents

Kopeerib kõik kaugkaustas /home/kasutajanimi/documents olevad failid, kaasaarvatud alamkaustad, mis asuvad serveril myhost.com kohalikku kausta /home/kasutajanimi/downloads/documents


scp -l 100 kasutajanimi@minuhost.com:/home/kasutajanimi/archive.zip

Piirates edastus kiiruse 100 kbit/s, edastab välivõrgus asuva faili /home/kasutajanimi/archive.zip, mis asub kaughostis myhost.com, kasutajana kasutajanimi kohalikku töötavasse kausta.


scp kasutajanimi1@esimenehost.com:/failid/fail1.zip kasutajanimi2@teinehost.com:/archives

Kopeerib faili kaugkaustast /failid/fail1.zip, mis asub kaughostis esimenehost.com kaugkausta /archives, mis asub kaughostis teinehost.com. Käskluse sisestamisel, kästakse sisestada paroolid nii kasutajanimi1 ja kasutajanimi2 jaoks ning failid edastatakse otse ühest kaughostilt teisele.


scp -3 kasutajanimi1@esimenehost.com:/failid/fail1.zip kasutajanimi2@teinehost.com:/archives

Käitub samamoodi nagu „scp kasutajanimi1@esimenehost.com:/failid/fail1.zip kasutajanimi2@teinehost.com:/archives“, kuid tänu -3 võtmele, toimub faili edastus kahe kaughosti vahel läbi kohaliku hosti.


scp fail1.txt fail2.txt kasutajanimi@kaughost:/path/kaust/

Võimaldab saata mitu faili, eraldades faili nimed tühikutega.


scp kasutajanimi@kaughost:/path/kaust/\{foo.txt,bar.txt\}

Võimaldab kopeerida mitu faili kaughostist kohalikku kausta kus ollakse(pwd).

[5] [6]

Kokkuvõte

Scp on lihtne Unix ja Linux-i programm, mis võimaldab kasutajal turvaliselt faile kopeerida erinevate välisvõrkudes olevate hostide vahel. Mis scp turvaliseks teeb on SSH, Secure Shell krüpteerib hostide vahel saadetavad andmed. Tööpõhimõttelt on scp küll lihtne ja on ka lihtne kasutada, kuid siiski pakub erinevaid võimalusi kasutada SSH-d nii nagu kasutaja soovib - erinevate tugevustega šifrid andmete krüpteerimiseks ning muid täpsustavaid suvandeid. Kuna scp on lihtne programm, mis on ka igale Linuxi distrole paigaldatud siis pole ka põhjust mitte kasutada scp-d, see on turvaline ja kiirus oleneb kui tugevat šifrit kasutad andmete krüpteerimiseks. Peab aga ka meeles pidama, et kuna tegu on lihtsa programmiga, siis puuduvad ka erinevad mugavus funktsioonid nagu failide sünkroniseerimine hostide vahel ja kui peaks faili saatmine nurjuma, peab kasutama scp väliseid programme, et viga parandada.

Autor

Janno Arnek

A21

Õppeaasta 2014/15

Kasutatud Allikad

[1] http://www.computerhope.com/unix/scp.htm

[2] http://unixhelp.ed.ac.uk/CGI/man-cgi?scp+1

[3] http://docs.oracle.com/cd/E26502_01/html/E29001/remotehowtoaccess-55154.html

[4] http://www.garron.me/en/linux/scp-linux-mac-command-windows-copy-files-over-ssh.html

[5] http://www.binarytides.com/linux-scp-command/

[6] http://www.tecmint.com/scp-commands-examples/