วิธีการดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ที่มี SSH / SCP

ผู้ใช้สามารถดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลได้อย่างปลอดภัยโดยใช้ SSH โดยใช้เครื่องมือ scp ที่บรรทัดคำสั่ง นั่นหมายความว่าคุณสามารถเก็บไฟล์ที่เก็บไว้อย่างปลอดภัยบนเซิร์ฟเวอร์ระยะไกลและถ่ายโอนไปยังที่จัดเก็บในเครื่องโดยไม่ต้องเปิดเผยไฟล์นั้นไปยังโลกภายนอกเนื่องจาก scp มีระดับการรักษาความปลอดภัยเท่ากันและต้องมีการรับรองความถูกต้องเหมือนกันที่ ssh ทำ


การดาวน์โหลดไฟล์ด้วย scp อย่างปลอดภัยมีเป้าหมายหลักที่ผู้ใช้ขั้นสูงที่ใช้ ssh และบรรทัดคำสั่งเป็นประจำใน macOS X, bsd หรือ linux สำหรับผู้ที่มีประสบการณ์ในการใช้บรรทัดคำสั่งอย่างเพียงพอการใช้ ssh และ scp เพื่อดาวน์โหลดไฟล์ระยะไกลเป็นเรื่องง่ายและสะดวกหลังจากการโอนไฟล์เสร็จสิ้นการเชื่อมต่อระยะไกลจะสิ้นสุดลง สิ่งนี้ทำให้เอสพีพี preferential เพื่อ sftp สำหรับการดาวน์โหลดไฟล์อย่างรวดเร็วแม้ว่าคุณจะสามารถใช้ sftp ได้อย่างเห็นได้ชัดหากคุณต้องการเช่นกัน

การดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลที่มี SSH Secure Copy

นี้จะถือว่าเซิร์ฟเวอร์ระยะไกลมี SSH ใช้งานและถ้าคุณสามารถ SSH เข้าเครื่องแล้วมันจะมีแนวโน้มที่จะมีการใช้งาน SCP เช่นกัน ถ้าคุณไม่มีเซิร์ฟเวอร์ระยะไกลเพื่อทดลองใช้ด้วยคุณสามารถลองใช้งานระหว่างเครื่อง Mac OS X หรือกับ localhost ถ้าคุณเปิดใช้งาน ssh และ Remote Login บน Mac ก่อน

ไวยากรณ์พื้นฐานเพื่อใช้ scp (secure copy) สำหรับการดาวน์โหลดไฟล์จากระยะไกลอย่างปลอดภัยมีดังนี้แทนที่ผู้ใช้เซิร์ฟเวอร์เส้นทางและเป้าหมายตามความเหมาะสม:

scp user@server:/path/to/remotefile.zip /Local/Target/Destination

ตัวอย่างเช่นในการดาวน์โหลดไฟล์ไปยังเดสก์ทอปท้องถิ่นชื่อ "filename.zip" ที่อยู่ในโฮมไดเร็กทอรีของ remote user "osxdaily" บน IP 192.168.0.45 เซิร์ฟเวอร์จะมีรูปแบบดังนี้:

% scp [email protected]:filename.zip ~/Desktop/
Password:
filename.zip 100% 126 10.1KB/s 00:00
%

สมมติว่าการตรวจสอบสิทธิ์ถูกต้องไฟล์เป้าหมายจะเริ่มดาวน์โหลดไปยังจุดหมายเป้าหมายโดยทันทีให้เปอร์เซ็นต์การดาวน์โหลดเสร็จสมบูรณ์ความเร็วในการดาวน์โหลดและเวลาในการโอนย้ายที่ผ่านไปเนื่องจากการดาวน์โหลดไฟล์

ตามปกติกับบรรทัดคำสั่งสิ่งสำคัญคือต้องระบุไวยากรณ์ที่แน่นอน

ถ้าไฟล์หรือเส้นทางมีช่องว่างในชื่อคุณสามารถใช้ใบเสนอราคาหรือ Escape บนเส้นทางเช่นนี้ได้:

scp [email protected]:"/some remote directory/filename.zip" ~/Desktop/

นอกจากนี้ยังสามารถใช้ scp เพื่อวางไฟล์บนเซิร์ฟเวอร์ระยะไกลได้อย่างปลอดภัยโดยการปรับไวยากรณ์ด้วยเช่นกัน แต่เรากำลังมุ่งเน้นไปที่การดาวน์โหลดไฟล์แทนการอัปโหลดไฟล์ที่นี่

ถ้าคุณยังใหม่กับ ssh และทดสอบข้อมูลนี้ด้วยตัวคุณเองและหากคุณไม่เคยเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลมาก่อนคุณจะถูกขอให้ยืนยันว่าคุณต้องการเชื่อมต่อกับเครื่องระยะไกลหรือไม่ นี่เป็นเช่นนั้นและต้องใช้คำตอบ "ใช่" หรือ "ไม่" ก่อนที่การดาวน์โหลดจะเริ่มขึ้น
% scp [email protected]:filename.zip ~/Desktop/
The authenticity of host '192.168.0.4 (192.168.0.4)' can't be established.
ECDSA key fingerprint is SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.4' (ECDSA) to the list of known hosts.
Password:
filename.zip 100% 126 0.1KB/s 00:00
%

อีกครั้งสมมติว่าการเชื่อมต่อได้รับการอนุมัติและเข้าสู่ระบบจะสำเร็จแฟ้มระยะไกลจะดาวน์โหลดจากเซิร์ฟเวอร์เป้าหมายไปยัง localhost

นอกจากนี้คุณยังสามารถใช้ scp เพื่อดาวน์โหลดไฟล์หลายไฟล์จากเซิร์ฟเวอร์ระยะไกลได้อีกด้วย:

scp user@host:/remote/path/\{file1.zip, file2.zip\} /Local/Path/

การใช้ ssh สำหรับการดาวน์โหลดไฟล์แบบรีโมตเช่นนี้เป็นวิธีที่เหมาะสมที่สุดสำหรับการถ่ายโอนข้อมูลที่ปลอดภัยซึ่งต้องมีการตรวจสอบสิทธิ์ แน่ใจได้ว่าคุณยังสามารถดาวน์โหลดไฟล์ที่มีการม้วนหรือ wget จากเซิร์ฟเวอร์ระยะไกลได้ แต่ไฟล์ที่สามารถเข้าถึงได้ด้วย curl และ wget มีแนวโน้มที่จะเข้าถึงได้จากภายนอกเช่นกันในขณะที่ ssh และ scp ต้องมีการตรวจสอบสิทธิ์หรือคีย์และใช้การเข้ารหัส 3DES ทำให้คุณสามารถดาวน์โหลดไฟล์ได้มาก ปลอดภัยมากขึ้น