จะทำให้ scp ใช้ที่อยู่ ipv6 ได้อย่างไร


26

เมื่อฉันพยายามใช้ scp ผ่านที่อยู่ IPv6 ฉันได้รับสิ่งนี้:

scp -6 osis@::1:/home/osis/test.file ./test.file
ssh: Could not resolve hostname : Name or service not known

ด้วย SCP ทั้งหมดที่ฉันได้รับคือ

ssh: Could not resolve hostname : Name or service not known

ใช้สิ่งนี้ฉันได้รับการเข้าสู่กล่องของฉันโดยไม่ต้องผูก

ssh osis@::1

คำตอบ:


42

scpต้องใช้ไวยากรณ์พิเศษบางอย่าง ที่อยู่ IPv6 จะต้องอยู่ในวงเล็บซึ่งจะต้องหลีกเลี่ยง ดังนั้นในตัวอย่างของคุณมันจะเป็นดังนี้:

scp -6 osis@\[2001:db8:0:1\]:/home/osis/test.file ./test.file

ไม่เช่นนั้นเครื่องหมายโคลอนแรก ':' จะถือเป็นตัวคั่นระหว่างไฟล์และส่วนที่อยู่

ssh: Could not resolve hostname 2001: Address family for hostname not supported

ในตัวอย่างของคุณด้วย ip ::1มันถูกตีความราวกับว่าคุณต้องการ ssh ไปยังโฮสต์''(ว่าง)


ขอบคุณสำหรับคำตอบของคุณข้อมูลนี้หายไปจาก man scp; man ssh
Osis

2
ลองส่งหน้าคนที่อัปเดตแล้วคุณสามารถพูดได้ว่า: ฉันช่วย
Martin Owens -doctormo-

2
เมื่อใช้แฟล็ก -6 คุณสามารถพิมพ์ localhost แทน :: 1 (ซึ่งเป็นที่อยู่ IPv6 สำหรับ localhost) เพื่อหลีกเลี่ยงวงเล็บเหลี่ยมดังนั้นจึงไม่จำเป็นต้องหลบสิ่งใด ๆ บนเชลล์:scp -6 osis@localhost:/home/osis/test.file ./test.file
freddyb

1
คุณไม่ควรใช้ที่อยู่ IPv6 คุณควรใช้ชื่อ DNS
Anders

0

คำสั่งดังกล่าวไม่ทำงานสำหรับฉันข้อผิดพลาดที่ฉันได้รับเนื่องจากที่อยู่ v6 ได้รับอนุญาตให้ใช้เส้นทาง

ไม่จำเป็นต้องใช้แบ็กสแลช "\" ตามตัวอย่างข้างต้นคำสั่งด้านล่างจะทำงาน

scp -6 osis@[2001:db8:0:1]:/home/osis/test.file ./test.file
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.