Az SCP parancs használata Linuxban

Egy egyszerű oktatóanyag, amely segít a fájlok átvitelében egy távoli rendszerre a Linux rendszerről az scp paranccsal.

Az SCP a „Secure Copy” rövidítése. scp a Linux által kínált parancssori segédprogram, amely lehetővé teszi fájlok és könyvtárak átvitelét egyik gépről a másikra nem biztonságos hálózaton keresztül.

Ha fájlokat szeretne másolni egyik rendszerről a másikra, akkor scp nagyon jó lehetőség lehet a fájlok és könyvtárak biztonságos átvitelére. Ha a két kommunikáló gép ugyanazon a hálózaton keresztül kapcsolódik, akkor a scp lehetségessé válik.

Erősen támaszkodhat a scp parancsot a titkosság és integritás érdekében, mivel az átvitel alatt álló fájl és az átvitelhez használt jelszó egyaránt titkosított. Nem fognak érzékeny információk megjelenni még akkor sem, ha valaki megpróbál lesni a forgalomról, miközben ez az átvitel folyamatban van.

Ebben az oktatóanyagban különböző példákat fogunk látni a scp parancs. Megnézünk néhány gyakran használt opciót is a scp parancs.

Kezdő lépések az scp paranccsal

Használni a scp paranccsal átvihet fájlokat/könyvtárakat:

  • A helyi gépről egy távoli gépre.
  • Két távoli gép között.
  • Távoli gépről a helyi gépre.

Általános szintaxis:

scp [Opció] [forrásfájl_neve] [felhasználó@cél_gazda]:cél_mappa

Nézzük meg egyenként ennek a parancsnak az alapvető attribútumait.

  • [forrás_fájl_neve] Ez a másolni kívánt forrásfájl.
  • [user@destination_Host] Ez annak a távoli rendszernek a felhasználóneve, ahová a fájlt másolni szeretné. Ebben az attribútumban a távoli gép IP-címe is szerepel a „@' szimbólum.
  • [cél mappa] Ez az a könyvtár, ahová a másolt fájlt menteni szeretné.

Jegyzet: A vastagbél (:) szimbólumot használunk a szintaxisban, mivel különbséget tesz a helyi és a távoli hely között. A kettőspontot használjuk (:) a távoli rendszerrel, hogy megadja azt a könyvtárat, ahová a fájlokat másolni kell. Ha nem adjuk meg a célkönyvtárat, akkor a fájlok a távoli rendszerfelhasználó saját könyvtárába másolódnak.

Használt opciók scp

Néhány legnépszerűbb opció, amelyet a scp parancsot az alábbiakban felsoroljuk.

választási lehetőségLeírás
-Clehetővé teszi az átvitt fájl tömörítését
-vadja meg a bőbeszédű kimenetet
-rfájlok és könyvtárak rekurzív másolása
-omegőrzi a fájlok engedélyeit, módjait és hozzáférési idejét
-Pmódosítsa a által használt alapértelmezett portot scp parancs

Az oktatóanyagban további példákat láthatunk ezekre a lehetőségekre.

Fájl másolása helyiről távoli rendszerre

scp lehetővé teszi a fájlok átvitelét a helyi rendszerről egy távoli rendszerre a következő szintaxis használatával. Ez lehetővé teszi a fájlok átvitelét vagy feltöltését egy távoli szerverre.

Általános szintaxis:

scp [fájlnév] távoli_felhasználó@gazdagép:[célmappa]

Példa:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

Ebben a példában egy „apache-tomcat-9.0.8.tar.gz” fájlt másolunk a helyi rendszerről a „143.110.178.221” IP-című távoli rendszerre.

A távoli rendszeren a fájl most a „gaurav” nevű könyvtárba lesz másolva.

Kimenet:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] jelszava: apache-tomcat-9.0.8.tar.gz 100% 798 KB /s 02:00 gaurav@ubuntu:~$ 

Ellenőrizzük a fájl kimenetét a távoli rendszeren.

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Így a fájl sikeresen átmásolódik a távoli rendszerre a scp parancs.

Több fájl másolása távoli rendszerre

Az előző példában megtanultuk a fájl átvitelét a távoli rendszerre a scp parancs. Most látni fogjuk a módszert, amellyel több fájlt vihetünk át a helyi rendszerről egy távoli rendszerre ezzel a paranccsal.

Általános szintaxis:

scp [fájl 1] [fájl 2] [fájl n] remote_username@remote_host:[specifikus könyvtár]

Értsük meg ezt az egyszerű folyamatot egy példán keresztül.

Példa:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

Itt több fájl szerepel a távoli rendszerre másolandó parancsban.

Kimenet:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] jelszava: ath.html 100 %s.40 KB/9 KB 02 abc.txt 100% 0 0.0KB/s 00:00 ppa-purge_0.2.8+bzr56_all.deb 100% 4360 42.2KB/s 00:00 gaurav@ubuntu:~$

A távoli rendszeren:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l összesen 9800 -rw-r--r-- 1 gyökérgyökér 0 október 5. 08:58 abc.txt -rw-r-- r-- 1 gyökérgyökér 9818695 október 5. 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 gyökérgyökér 204057 október 5. 08:58 ath.html -rw-r-- r-- 1 gyökér gyökér 4360. október 5. 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Mindhárom fájl átmásolásra került a távoli rendszerre.

Könyvtár másolása a távoli rendszerre

Te tudod használni scp paranccsal átmásolhat egy könyvtárat a helyi rendszerről a távoli rendszerre. A folyamat hasonló a fájl másolásához. A címtár tartalmának másolásához is használhatja a -r opcióval a scp parancs.

A -r Az opció egy könyvtár rekurzív másolására szolgál. Ez azt jelenti, hogy a könyvtárban lévő összes almappa és fájl is másolásra kerül.

Általános szintaxis:

scp -r [könyvtár elérési útja] távoli_felhasználónév@remote_host:[célkönyvtár]

Példa:

scp -r PycharmProjects [email protected]:gaurav

Kimenet:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] jelszava: __main__.py 100% 623 7.8KB/s 00:00 __ins 0 KB/0 00_0_.py __ins. . s 00:00 check.py 100% 1430 16,8 KB/s 00:00 configuration.py 100% 7125 50,4 KB/s 00:00 show.py 100% 6289 49,8 KB/s 00:00 download.py 623% 468 KB/s 00:00 gaurav@ubuntu:~$ 

Használni a -r opcióval a scp parancs átmásolja a könyvtárban található összes almappát és fájlt a helyi gépről a távoli rendszerre.

Részletes információk megjelenítése az scp folyamatról

Használhatja a -v (kisbetűs v) lehetőséget, hogy megjelenítse a távoli vagy a helyi rendszeren másolt fájlokkal kapcsolatos információkat. Ezt a fajta kimenetet bőbeszédű kimenetnek is nevezik.

Ha ezt az opciót használja, a fájl teljes hibakeresési információja megjelenik a képernyőn.

Általános szintaxis:

scp -v [fájl_név] felhasználónév@felhasználói_gazda:

Példa:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

Kimenet:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Végrehajtás: program /usr/bin/ssh host 159.89.170.11, root felhasználó, parancs scp -v -t csapat OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/gaurav/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /ssh_sconfsh/ 19. sor: A * debug1 opciók alkalmazása: Csatlakozás a 159.89.170.11 [159.89.170.11] 22-es porthoz. debug1: A kapcsolat létrejött. debug1: key_load_public: Nincs ilyen fájl vagy könyvtár debug1: azonosságfájl /home/gaurav/.ssh/id_rsa type -1 apache-tomcat-9.0.8.tar.gz 100% 9589KB 99,8KB/s 01:36 debug1: client_req_channel csatorna 0 rtípus kilépési állapot válasz 0 debug1: csatorna 0: ingyenes: kliens-munkamenet, nchannels 1 debug1: fd 0 törlés O_NONBLOCK debug1: fd 1 törlés O_NONBLOCK Áthelyezve: elküldve 9826736, fogadva 4016 bájt/másodperc. 101133.9, kapott 41.3 debug1: Kilépési állapot 0 gaurav@ubuntu:~$ 

Itt, a kimenetben láthatja, hogy a fájl hibakeresési információi megjelennek a terminálon, amikor a scp parancsot a -v választási lehetőség.

Fájlok átvitele két távoli gazdagép között

A Linux lehetővé teszi, hogy több távoli gazdagéphez csatlakozzon. Fájlokat és könyvtárakat vihet át két távoli gazdagép között a segítségével scp parancs.

Általános szintaxis:

scp távoli_felhasználó_1@gazda_1:/[fájlnév] távoli_felhasználó_2@gazda_2:[mentendő_mappa]

A szintaxis kissé tágabbnak tűnhet, de nagyon egyszerű. Itt a parancs első része megadja a bemenetet a távoli felhasználóról, ahonnan a fájlt másolni kell. kettőspont (:) és / A két távoli gép között átvinni kívánt fájlnév vagy könyvtárnév megadására szolgál.

A második rész információt nyújt a cél távoli rendszerről, ahová a fájlt másolni kell.

Példa:

scp -r [email protected]:gaurav [email protected]:/csapat

Itt egy „gaurav” nevű könyvtárat fogunk rekurzívan átmásolni a helyi rendszerről egy távoli rendszerre. A fájl a távoli rendszer „team” mappájába másolódik.

Kimenet:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] jelszava: 1.py 100% 134 261.3KB/s változók 0.183.82.183 100% 377 949,2 KB/s 00:00 abc.txt 100% 0 0,0 KB/s 00:00 ath.html 100% 199 KB 41,8 MB/s 00:00 gaurav@ubuntu:~$

Itt használtuk a scp parancs a helyi rendszeren a „gaurav” nevű könyvtár átviteléhez egyik távoli szerverről a másikra.

Fájlok átvitele a távoli rendszerről a helyi rendszerre

Könnyen átviheti a fájlokat vagy könyvtárakat a távoli rendszerről a helyi rendszerre a segítségével scp parancs. Egyszerűbben fogalmazva, több fájlt vagy könyvtárat tölthet le a távoli kiszolgálóról a helyi rendszerére a segítségével scp parancs.

Általános szintaxis:

scp remote_username@user_host:/files/file.txt /[folder_of_local_system]

Kimenet:

gaurav@ubuntu:~$ scp [email protected]:how.txt . [email protected] jelszava: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$

Itt letöltöttem (másoltam) a fájlt a távoli szerverről a saját könyvtáramba. Ezért használtam a pontot (.) megadásához a parancsban, hogy másolja a fájlt a saját könyvtáramba.

Minta kimenet:

gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11. október 6. 09:49 how.txt gaurav@ubuntu:~$ 

Itt a fájl most a saját könyvtáramba másolódik a távoli szerverről.

Ugyanígy több fájlt vagy könyvtárat is letölthet a távoli szerverről a scp parancsot a megfelelő opciókkal.

Fájlok tömörítése a gyorsabb átvitel érdekében

Néha a nagy fájlok átvitele időigényes lehet. Ez a probléma a scp parancsot a -C (nagybetűs C) választási lehetőség.

Használni a -C opciót, tömöríti a nagyobb méretű fájlokat, ami megkönnyíti a gyorsabb átvitelt, és így időt takarít meg.

Egy érdekes tény ezzel az opcióval kapcsolatban, hogy a fájl eredeti méretével másolódik a célrendszerre, de az átviteli folyamat során a méret tömörítésre kerül a gyorsabb átvitel érdekében. Így a tömörítés csak a hálózaton történik.

Általános szintaxis:

scp -C [fájl_név] felhasználónév@felhasználói_gazda:[célmappa]

Nézzünk egy összehasonlító példát, hogy megértsük a különbséget.

Átvitel -C opció nélkül:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Végrehajtás: program /usr/bin/ssh host 68.183.82.183, root felhasználó, parancs scp -v -r -t csapat OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/trinity/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19. sor: A *debug1 beállításainak alkalmazása : Csatlakozás a 68.183.82.183 [68.183.82.183] 22-es porthoz. debug1: A kapcsolat létrejött. debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK Átvitel: 65 beküldve 04tes által 6 s. másodpercenként: 100693.7 küldve, 53.7 fogadott debug1: Kilépési állapot 0 gaurav@ubuntu:~$ 

A fenti kimenetből láthatjuk, hogy az átvitelhez szükséges idő 74,6 másodperc. Megpróbáljuk ugyanazt a fájlt átvinni a -C kapcsolóval, és megfigyeljük a különbséget.

Átvitel -C opcióval:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Végrehajtás: program /usr/bin/ssh host 68.183.82.183, root felhasználó, parancs scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu. 3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/trinity/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19. sor: A *debug1 beállításainak alkalmazása : Csatlakozás a 68.183.82.183 [68.183.82.183] 22-es porthoz. debug1: A kapcsolat létrejött. . . webupload.img 100% 1834KB 98,7KB/s 00:18 Fájlküldési módok: C0664 1877552 router.img Nyelő: C0664 1877552 router.img router.img 100% 1834KB/s 100.:0:01834KB/s fájlmód 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Mosogató: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-0.7.0pziT A Átvive: elküldve 7518864, fogadva 3828 bájtot, 51.0 másodperc alatt Bájt/másodperc: elküldve 100245.4, fogadva 51.0 debug1: Kilépési állapot 0 debug1: kimenő tömörítés: nyers adatok 7511925, tömörítve 7513136, tömörítés1, debug. tömörítés1, de com4 999, 0,68-as faktor gaurav@ubuntu:~$

Itt könnyen megfigyelhetjük, hogy a -C opcióval a scp parancs lehetővé tette a fájl tömörítését a hálózaton keresztül, így időtakarékos lehetőségnek bizonyult.

Másik ssh port használata a fájlátvitelhez

Használata közben a scp parancs a telepített alapértelmezett port a 22-es port. A felhasználó szabadon testreszabhatja a portválasztást. Használhatja a -P (nagybetűs P opció) a scp parancsot a választott port használatához.

Általános szintaxis:

cp -P [új_portszám] [fájlnév/könyvtárnév] távoli_felhasználó@host:[célmappa]

Példa:

scp -P 4248 dlink [email protected]:team

A fenti paranccsal a fájl átkerül a távoli szerverre. De ezúttal a használt port lesz 4248-as port az alapértelmezett helyett 22-es port.

Következtetés

Miután végignéztük ezt az oktatóanyagot, megismertük a dinamikus természetét scp parancs fájlok egyik rendszerről a másikra történő átvitelére vagy másolására szolgál. Ez a lehetőség fájlok vagy könyvtárak letöltésére is használható a távoli szerverről. Ebből arra következtethetünk scp parancs nagyon hasznosnak bizonyul a fájlátvitelhez, amikor egynél több rendszert és távoli kiszolgálót kell kezelnie egyszerre.