Android

วิธีใช้คำสั่ง scp เพื่อถ่ายโอนไฟล์อย่างปลอดภัย

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

SCP (สำเนาที่ปลอดภัย) เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ให้คุณคัดลอกไฟล์และไดเรกทอรีอย่างปลอดภัยระหว่างสองตำแหน่ง

ด้วย scp คุณสามารถคัดลอกไฟล์หรือไดเรกทอรี:

  • จากระบบโลคัลของคุณไปยังระบบรีโมตจากระบบรีโมตไปยังระบบโลคัลของคุณระหว่างสองระบบรีโมตจากระบบโลคัลของคุณ

เมื่อถ่ายโอนข้อมูลด้วย scp ทั้งไฟล์และรหัสผ่านจะถูกเข้ารหัสเพื่อให้ทุกคนที่สอดแนมบนทราฟฟิกไม่รู้สึกอ่อนไหว

ในบทช่วยสอนนี้เราจะแสดงวิธีใช้คำสั่ง scp ผ่านตัวอย่างการใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือก scp ทั่วไป

ไวยากรณ์คำสั่งของ SCP

ก่อนที่จะเข้าสู่วิธีการใช้คำสั่ง scp เริ่มต้นด้วยการทบทวนไวยากรณ์พื้นฐาน

ไวยากรณ์คำสั่ง scp ใช้แบบฟอร์มต่อไปนี้:

scp SRC_HOST:]file1 DEST_HOST:]file2

  • OPTION - ตัวเลือก scp เช่น cipher, ssh configuration, ssh port, limit, copy recursive … ฯลฯ SRC_HOST:]file1 - ไฟล์ต้นฉบับ DEST_HOST:]file2 - ไฟล์ปลายทาง

ควรระบุไฟล์โลคัลโดยใช้พา ธ สัมบูรณ์หรือพา ธ สัมพัทธ์ขณะที่ชื่อไฟล์รีโมตควรมีข้อมูลผู้ใช้และโฮสต์

scp มีตัวเลือกมากมายที่ควบคุมพฤติกรรมทุกด้านของมัน ตัวเลือกที่ใช้กันอย่างแพร่หลายคือ:

  • -P ระบุพอร์ต ssh โฮสต์ระยะไกล -p รักษาการแก้ไขไฟล์และเวลาในการเข้าถึง -q ใช้ตัวเลือกนี้หากคุณต้องการระงับเครื่องวัดความคืบหน้าและข้อความที่ไม่ใช่ข้อผิดพลาด -C ตัวเลือกนี้จะบังคับให้ scp บีบอัดข้อมูลตามที่ส่งไปยังเครื่องปลายทาง -r ตัวเลือกนี้จะบอก scp เพื่อคัดลอกไดเรกทอรีซ้ำ

ก่อนที่คุณจะเริ่ม

คำสั่ง scp อาศัย ssh สำหรับการถ่ายโอนข้อมูลดังนั้นจึงต้องใช้คีย์ ssh หรือรหัสผ่านเพื่อตรวจสอบความถูกต้องของระบบระยะไกล

โคลอน (:) เป็นวิธีที่ scp แยกแยะระหว่างตำแหน่งโลคัลและรีโมต

เพื่อให้สามารถคัดลอกไฟล์คุณต้องมีสิทธิ์การอ่านอย่างน้อยในไฟล์ต้นฉบับและได้รับอนุญาตให้เขียนบนระบบเป้าหมาย

ระวังเมื่อคัดลอกไฟล์ที่ใช้ชื่อและตำแหน่งเดียวกันบนทั้งสองระบบ scp จะเขียนทับไฟล์โดยไม่มีการเตือน

เมื่อถ่ายโอนไฟล์ขนาดใหญ่แนะนำให้รันคำสั่ง scp ภายในหน้าจอหรือเซสชัน tmux

คัดลอกไฟล์และไดเรกทอรีระหว่างสองระบบด้วย scp

คัดลอกไฟล์ท้องถิ่นไปยังระบบระยะไกลด้วยคำสั่ง scp

ในการคัดลอกไฟล์จากโลคัลไปยังระบบรีโมตให้รันคำสั่งต่อไปนี้:

scp file.txt [email protected]:/remote/directory

โดยที่ file.txt เป็นชื่อไฟล์ที่เราต้องการคัดลอก remote_username เป็นผู้ใช้บนเซิร์ฟเวอร์ระยะไกล 10.10.0.2 เป็นที่อยู่ IP ของเซิร์ฟเวอร์ /remote/directory คือพา ธ ไปยังไดเร็กทอรีที่คุณต้องการคัดลอกไฟล์ หากคุณไม่ได้ระบุไดเรกทอรีระยะไกลไฟล์จะถูกคัดลอกไปยังไดเรกทอรีบ้านผู้ใช้ระยะไกล

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้และกระบวนการถ่ายโอนจะเริ่มขึ้น

[email protected]'s password: file.txt 100% 0 0.0KB/s 00:00

การข้ามชื่อไฟล์จากตำแหน่งปลายทางจะคัดลอกไฟล์ด้วยชื่อเดิม หากคุณต้องการบันทึกไฟล์ภายใต้ชื่ออื่นคุณจะต้องระบุชื่อไฟล์ใหม่:

scp file.txt [email protected]:/remote/directory/newfilename.txt

หาก SSH บนรีโมตโฮสต์กำลังรับฟังพอร์ตอื่นที่ไม่ใช่ 22 ดีฟอลต์คุณสามารถระบุพอร์ตโดยใช้อาร์กิวเมนต์ -P :

scp -P 2322 file.txt [email protected]:/remote/directory

คำสั่งในการคัดลอกไดเรกทอรีนั้นเหมือนกับเมื่อทำการคัดลอกไฟล์ ข้อแตกต่างคือคุณต้องใช้แฟ -r เพื่อเรียกซ้ำ

ในการคัดลอกไดเร็กทอรีจากโลคัลไปยังระบบรีโมตใช้อ็อพชัน -r :

scp -r /local/directory [email protected]:/remote/directory

คัดลอกไฟล์ระยะไกลไปยังระบบโลคัลโดยใช้คำสั่ง scp ommand

ในการคัดลอกไฟล์จากรีโมตไปยังระบบโลคัลใช้ตำแหน่งรีโมตเป็นตำแหน่งต้นทางและโลคัลเป็นปลายทาง

ตัวอย่างเช่นการคัดลอกไฟล์ชื่อ file.txt จากเซิร์ฟเวอร์ระยะไกลที่มี IP 10.10.0.2 รันคำสั่งต่อไปนี้:

scp [email protected]:/remote/file.txt /local/directory

คัดลอกไฟล์ระหว่างสองระบบระยะไกลโดยใช้คำสั่ง scp

แตกต่างจาก rsync เมื่อใช้ scp คุณไม่จำเป็นต้องลงชื่อเข้าใช้หนึ่งในเซิร์ฟเวอร์เพื่อถ่ายโอนไฟล์จากหนึ่งไปยังอีกเครื่องระยะไกล

คำสั่งต่อไปนี้จะคัดลอกไฟล์ /files/file.txt จากรีโมตโฮสต์ host1.com ไปยังไดเร็กทอรี /files บนรีโมตโฮสต์ host2.com

scp [email protected]:/files/file.txt [email protected]:/files

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านสำหรับบัญชีระยะไกลทั้งสอง ข้อมูลจะถูกถ่ายโอนโดยตรงจากโฮสต์ระยะไกลหนึ่งไปยังอีก

ในการกำหนดเส้นทางทราฟฟิกผ่านเครื่องที่ใช้คำสั่งให้ใช้ตัวเลือก -3 :

scp -3 [email protected]:/files/file.txt [email protected]:/files

ข้อสรุป

ในบทช่วยสอนนี้คุณเรียนรู้วิธีใช้คำสั่ง scp เพื่อคัดลอกไฟล์และไดเรกทอรี

คุณอาจต้องการตั้งค่าการรับรองความถูกต้องโดยใช้คีย์ SSH และเชื่อมต่อกับเซิร์ฟเวอร์ Linux ของคุณโดยไม่ต้องป้อนรหัสผ่าน

scp terminal