ในอดีตวิธีการscp
ทำงานเมื่อมีการเรียก ( ไร้เดียงสา ) เพื่อคัดลอกไฟล์ระหว่างระบบรีโมตนั้นไม่สะดวกเช่นถ้าคุณเขียนเช่น
scp user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
scp
จะเปิดssh
เซสชันใน remote1 ก่อนจากนั้นจะเรียกใช้scp
จากที่นั่นไปยัง remote2 เพื่อให้สามารถใช้งานได้คุณจะต้องตั้งค่าหนังสือรับรองการอนุญาตสำหรับ remote2 บน remote1
วิธีการที่ทันสมัยที่จะทำแทน ("ทันสมัย" เพราะมันถูกนำมาใช้เพียงไม่กี่ปีที่ผ่านมาและอาจไม่ใช่ทุกคนที่มี-3
-capable scp
) ต้องใช้สองขั้นตอน ขั้นตอนแรกที่จำเป็นคือการใช้~/.ssh/config
การตั้งค่าตัวเลือกทั้งหมดสำหรับการเชื่อมต่อกับ remote1 และ remote2 ดังต่อไปนี้:
Host remote1.example.org
Port 2222
IdentityFile /path/to/host1-id_rsa
Host remote2.example.org
Port 6969
IdentityFile /path/to/host2-id_rsa
วิธีนี้จึงเป็นไปได้ที่จะผ่านตัวเลือกที่จำเป็นทั้งหมดเพื่อคำสั่งโดยไม่ต้องงงงวย : ยกตัวอย่างเช่นถ้าเราได้กล่าวว่าใน CLI พอร์ตการใช้งาน 2222โดยไม่ต้องกำหนดค่าข้างต้นก็จะได้รับความชัดเจนว่าเรากำลังหมายถึงREMOTE1หรือremote2และ เช่นเดียวกันสำหรับไฟล์ที่มีคีย์ cryptgraphic วิธีนี้ CLI ยังคงเป็นระเบียบและเรียบง่าย
ประการที่สองใช้-3
ตัวเลือกดังนี้:
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
-3
ตัวเลือกสั่งscp
การจราจรเส้นทางผ่านเครื่องคอมพิวเตอร์ที่คำสั่งจะออกแม้ว่ามันจะเป็นบุคคลที่ 3 ที่จะโอน วิธีนี้ข้อมูลประจำตัวการให้สิทธิ์จะต้องอยู่ในพีซีที่ออกซึ่งเป็นบุคคลที่สามเท่านั้น