scp
ไม่ฉลาดมาก: เมื่อกำหนดอาร์กิวเมนต์บรรทัดคำสั่งหลายไฟล์ซึ่งเป็นไฟล์จากรีโมตโฮสต์เดียวกันจะเป็นการเปิดการเชื่อมต่อใหม่สำหรับแต่ละอาร์กิวเมนต์
คุณสามารถใช้rsync
แทนscp
วิธีนี้ได้อย่างชาญฉลาดกว่า (และวิธีอื่น ๆ )
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
อีกวิธีหนึ่งคือการส่งผ่านอาร์กิวเมนต์เดียวเพื่อscp
ที่อธิบายหลายไฟล์
แนวทางที่แตกต่างคือการตั้งค่าระบบของคุณเพื่อให้คุณไม่ต้องตรวจสอบสิทธิ์ตลอดเวลา ควรตั้งค่าการรับรองความถูกต้องของคีย์ซึ่งเป็นสถานการณ์ส่วนใหญ่ที่สะดวกและปลอดภัยยิ่งขึ้น หรือนอกจากนี้ให้ตั้งค่าการแชร์การเชื่อมต่อเพื่อให้คุณต้องตรวจสอบสิทธิ์หนึ่งครั้งต่อเซสชัน ไม่ว่าในกรณีใดก็ตามให้ตั้งค่านามแฝงเพื่อให้คุณไม่ต้องระบุชื่อผู้ใช้และพอร์ตทุกครั้ง ใน~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
เรียกใช้ssh -Nf nick
เพื่อเปิดการเชื่อมต่อจากนั้นการเชื่อมต่อที่ตามมาทั้งหมดnick
จะ piggyback ในการเชื่อมต่อที่มีอยู่ ตอนนี้คุณสามารถวิ่งได้แล้ว
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/