ssh scp เพื่อคัดลอกไฟล์ไปยังพอร์ตเซิร์ฟเวอร์ระยะไกล 21


22

ฉันพยายามที่จะคัดลอกไฟล์จากเซิร์ฟเวอร์ของฉันไปยังอีกดังนั้นฉันใช้คำสั่งต่อไปนี้:

scp root@myhost /home/direc/file.tar username@secondhost:/home/dir

ฉันได้รับข้อผิดพลาด:

ssh: เชื่อมต่อกับโฮสต์ secondhost พอร์ต 22 หมดเวลาเชื่อมต่อ

ฉันรู้ว่าอาจเป็นเพราะพอร์ต 22 ไม่ได้เปิดบนโฮสต์ที่สอง

ดังนั้นฉันจะถ่ายโอนโดยระบุพอร์ต 21 บนโฮสต์ที่สองของฉันได้อย่างไร

คำตอบ:


33

ลอง

scp -P 21 root@myhost /home/direc/file.tar username@secondhost:/home/dir

โดยที่ -P ย่อมาจากหมายเลขพอร์ต


1
ฉันรู้สิ่งนี้ แต่ระบุพอร์ตสำหรับโฮสต์แรกจากที่ฉันต้องการคัดลอกไฟล์ไม่ใช่โฮสต์ที่สองดังนั้นฉันจะระบุพอร์ต 21 สำหรับโฮสต์ที่สอง
user1613566

4

สองข้อบกพร่องที่ฉันเห็นในความพยายามของคุณและการตอบสนอง

1) scp เป็นยูทิลิตี้ secure shell (ssh) สำหรับการคัดลอกไฟล์อย่างปลอดภัยระหว่างโฮสต์ มันใช้ ssh สำหรับการถ่ายโอนข้อมูลและใช้การรับรองความถูกต้องเดียวกันและให้ความปลอดภัยเช่นเดียวกับ ssh (ดู scp manpage) โดยค่าเริ่มต้น ssh ใช้พอร์ต 22 ดังนั้นหากคุณเปลี่ยนหมายเลขพอร์ตเริ่มต้นสำหรับ ssh บนเซิร์ฟเวอร์ปลายทางเป็น 21 หรือคุณยังไม่ได้ติดตั้งและเริ่มเซิร์ฟเวอร์ ssh (sshd) บนเซิร์ฟเวอร์ที่รับคุณไม่สามารถใช้ scp เพื่อคัดลอก ไฟล์

2) บรรทัดคำสั่งที่เหมาะสมจากตัวอย่างของคุณควรเป็น:

scp -P '*port running ssh on destination server*' /home/direc/file.tar username@remotehost:/home/dir

ครั้งแรกroot@myhostไม่จำเป็นและในความเป็นจริงจะพยายามคัดลอกไฟล์ชื่อroot@myhost(ที่มักไม่มีอยู่) และ file.tar ไปยังเซิร์ฟเวอร์ปลายทาง คุณมักจะได้รับข้อความ:

root@myhost: No such file or directory during the copy.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.