ฉันจะ SCP จากเครื่องระยะไกลไปยังเครื่องท้องถิ่นได้อย่างไรเมื่อฉันอยู่นอกเครือข่ายในบ้านของฉัน


57

ในขณะที่ฉันเข้าใจวิธีการ scp ไฟล์ไปยังและจากเซิร์ฟเวอร์ของฉันจากภายในเครือข่ายภายในบ้านของฉันฉันจะ scp ไฟล์จากเซิร์ฟเวอร์ของฉันไปยังเครื่องท้องถิ่นของฉันได้อย่างไรเมื่อฉันอยู่ข้างนอกพูดที่ Starbucks?

ในขณะที่ฉันสามารถสแกนจากเครื่องในประเทศของฉันไปยังเซิร์ฟเวอร์ของฉันในสถานการณ์นี้ฉันไม่ได้คิดวิธีการคว้าไฟล์จากที่บ้านโดยใช้บรรทัดคำสั่ง ข้อเสนอแนะใด ๆ

คำตอบ:


86

วิธีการถามคำถามนั้นค่อนข้างสับสน แต่ถ้าคุณสามารถคัดลอกจากเครื่องท้องถิ่นของคุณไปยังเซิร์ฟเวอร์เพื่อไปทางอื่นเพียงแค่พลิกลำดับบรรทัดคำสั่ง

SCP ของมัน [จาก] [ถึง]

ผู้ใช้ scp @ homeip: / path / to / file / local / path /

ขอบคุณฉันจะลองและยืนยันว่ามันใช้งานได้สำหรับฉัน
user98496

1
ฉันคิดว่าคำถามนั้นเกี่ยวกับการตั้งค่า dyndns และการส่งต่อพอร์ต ... เขาแค่ไม่รู้ว่าจะถามอะไร
RobotHumans

1
จริงฉันอาจไม่รู้ว่าจะถามอะไร ฉันยังเรียนอยู่ หากคุณสามารถให้คำอธิบายเพิ่มเติมเกี่ยวกับพอร์ตที่ฉันต้องการส่งต่อ (และข้อมูลใด ๆ ที่ฉันต้องการเกี่ยวกับ dyndns) เพื่อให้บรรลุเป้าหมายของฉันฉันขอขอบคุณมัน :-)
user98496

คำแนะนำในการตอบกลับครั้งแรกไม่ได้ผล โดยปกติเมื่อฉันพิมพ์: "scp -r somedir me@123.45.6.7: / home / me / Desktop" มันใช้งานได้ดี อย่างไรก็ตามถ้าฉันลองจากการเชื่อมต่อ WiFi สาธารณะที่สตาร์บัคส์ (ไม่ใช่ที่บ้าน) มันไม่ทำงาน ผมทำอะไรผิดหรือเปล่า?
user98496

6
แก้ไขแล้ว: คำสั่งที่ใช้งานได้สำหรับฉันคือ: scp remoteusername @ host: fileiwanttocopy / my / local / comp
user98496

37

คัดลอกไฟล์ "foobar.txt" จากรีโมตโฮสต์ไปยังโลคัลโฮสต์:

$ scp your_username@remotehost.edu:foobar.txt /some/local/directory

คัดลอกไฟล์ "foobar.txt" จากโลคัลโฮสต์ไปยังรีโมตโฮสต์:

$ scp foobar.txt your_username@remotehost.edu:/some/remote/directory

คัดลอกไดเรกทอรี "foo" จากโลคัลโฮสต์ไปยังไดเร็กทอรี "bar" ของรีโมตโฮสต์:

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

คัดลอกไฟล์ "foobar.txt" จากรีโมตโฮสต์ "rh1.edu" ไปยังรีโมตโฮสต์ "rh2.edu":

$ scp your_username@rh1.edu:/some/remote/directory/foobar.txt your_username@rh2.edu:/some/remote/directory/

คัดลอกไฟล์ "foo.txt" และ "bar.txt" จากโลคัลโฮสต์ไปยังโฮมไดเร็กตอรี่ของคุณบนรีโมตโฮสต์:

$ scp foo.txt bar.txt your_username@remotehost.edu:~

คัดลอกไฟล์ "foobar.txt" จากโลคัลโฮสต์ไปยังรีโมตโฮสต์โดยใช้พอร์ต 2264:

$ scp -P 2264 foobar.txt your_username@remotehost.edu:/some/remote/directory

คัดลอกหลายไฟล์จากรีโมตโฮสต์ไปยังไดเร็กทอรีปัจจุบันของคุณบนโลคัลโฮสต์:

$ scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} .

$ scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} .

สำหรับข้อมูลเพิ่มเติม: สำเนาที่ปลอดภัย


และทั้งหมดนี้ต้องการให้คุณsshdวิ่ง - ทุกคนรู้ดีใช่มั้ย ... หรือไม่
Hannu

0

หากคุณต้องการรักษาความปลอดภัยการคัดลอกไปยังสถานที่ห่างไกลเช่น Dropbox หรือ GoogleDrive สร้างบัญชีด้วยhttps://couchdrop.ioจากนั้นเชื่อมโยงผู้ให้บริการจัดเก็บของคุณ

จากตรงนั้น

scp <filename> couchdrop-username@couchdrop.io:/Dropbox ฯลฯ หากคุณต้องการดึงไฟล์จากคลาวด์จากนั้นให้ย้อนกลับคำสั่งสองคำสั่งนั้น

scp couchdrop-usernmae@couchdrop.io:/Dropbox/filename ~/ - สิ่งนี้จะดึงไฟล์ลงไปยังไดเรกทอรีที่คุณเลือก

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