คุณสามารถใช้~/.ssh/config
เพื่อระบุพอร์ตที่จะใช้สำหรับโฮสต์ (และสำหรับการตั้งค่าสิ่งที่ดีอื่น ๆ อีกมากมาย; ตรวจสอบหน้าคนman ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
เมื่อทำสิ่งนี้คุณจะต้องใช้ตัวเลือก-3
เพื่อ scp ซึ่งคัดลอกไฟล์ผ่านเครื่องท้องถิ่นของคุณ มิฉะนั้น scp จะออกคำสั่ง scp ผ่าน ssh บนโฮสต์แรกดังนั้นจึงรันได้จริง
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
จากนั้นจึงใช้ ~ / .ssh / config ของโฮสต์ระยะไกลตัวแรก (67.12.21.133) แทนโลคัลโฮสต์ของคุณ
เมื่อคุณติดตั้ง~/.ssh/config
อย่างถูกต้องสิ่งนี้จะทำงาน:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
แน่นอนคุณสามารถคัดลอกเนื้อหาของไฟล์ ~ / .ssh / config ไปยังโฮสต์ระยะไกลเครื่องแรกของคุณจากนั้นคุณสามารถใช้ scp โดยไม่มี-3
ตัวเลือกซึ่งอาจทำให้การถ่ายโอนเร็วขึ้น
หรือคุณสามารถใช้เคล็ดลับที่ scp ใช้และใช้บรรทัดคำสั่งดังกล่าว:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(โปรดสังเกตกรณีที่แตกต่างกันของพารามิเตอร์พอร์ตสำหรับ ssh และ scp: ssh -p 6774
vs. scp -P 6774
)
PS: ฉันได้รับข้อมูลจาก OpenSSH bugzilla ที่ฉันป้อนสิ่งนี้เป็นข้อผิดพลาด: https://bugzilla.mindrot.org/show_bug.cgi?id=2020