วิธีดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ด้วย SSH / SCP
ผู้ใช้สามารถดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลได้อย่างปลอดภัยด้วย SSH โดยใช้เครื่องมือ scp ที่บรรทัดคำสั่ง โดยพื้นฐานแล้วหมายความว่าคุณสามารถเก็บไฟล์ไว้อย่างปลอดภัยบนเซิร์ฟเวอร์ระยะไกลและถ่ายโอนไปยังที่จัดเก็บในเครื่องโดยไม่ต้องเปิดเผยไฟล์นั้นสู่โลกภายนอก เนื่องจาก scp มีการรักษาความปลอดภัยในระดับเดียวกันและต้องการการพิสูจน์ตัวตนแบบเดียวกับที่ ssh ทำ
การดาวน์โหลดไฟล์อย่างปลอดภัยด้วย scp มุ่งเป้าไปที่ผู้ใช้ขั้นสูงที่ใช้ ssh และ command line เป็นประจำใน macOS X, bsd หรือ linux สำหรับผู้ที่มีประสบการณ์บรรทัดคำสั่งเพียงพอ การใช้ ssh และ scp เพื่อดาวน์โหลดไฟล์ระยะไกลนั้นง่ายและสะดวก หลังจากการถ่ายโอนไฟล์เสร็จสิ้น การเชื่อมต่อระยะไกลจะสิ้นสุดลง สิ่งนี้ทำให้ scp ได้เปรียบกว่า sftp สำหรับการดาวน์โหลดไฟล์อย่างรวดเร็ว แม้ว่าคุณจะสามารถใช้ sftp ได้หากต้องการเช่นกัน
การดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลด้วย SSH Secure Copy
สิ่งนี้ถือว่าเซิร์ฟเวอร์ระยะไกลมี ssh ทำงานอยู่ และถ้าคุณสามารถ ssh เข้าไปในเครื่องได้ ก็น่าจะมี scp ทำงานอยู่เช่นกัน หากคุณไม่มีเซิร์ฟเวอร์ระยะไกลที่จะลองใช้ คุณสามารถลองใช้ระหว่างเครื่อง Mac OS X หรือกับ localhost หากคุณเปิดใช้งาน ssh และการเข้าสู่ระบบระยะไกลบน Mac ไว้ล่วงหน้า
ไวยากรณ์พื้นฐานในการใช้ scp (สำเนาที่ปลอดภัย) สำหรับการดาวน์โหลดไฟล์ระยะไกลอย่างปลอดภัยมีดังนี้ แทนที่ผู้ใช้ เซิร์ฟเวอร์ เส้นทาง และเป้าหมายตามความเหมาะสม:
scp user@server:/path/to/remotefile.zip /Local/Target/Destination
ตัวอย่างเช่น หากต้องการดาวน์โหลดไฟล์ไปยังเดสก์ท็อปในเครื่องชื่อ “filename.zip” ซึ่งอยู่ในโฮมไดเร็กทอรีของผู้ใช้ระยะไกล “osxdaily” บนเซิร์ฟเวอร์ IP 192.168.0.45 ไวยากรณ์จะเป็นดังนี้:
% scp [email protected]:filename.zip ~/Desktop/ รหัสผ่าน: filename.zip 100% 126 10.1KB/s 00:00 %
หากการยืนยันตัวตนถูกต้อง ไฟล์เป้าหมายจะเริ่มดาวน์โหลดไปยังปลายทางเป้าหมายทันที โดยเสนอเปอร์เซ็นต์ความสมบูรณ์ ความเร็วในการดาวน์โหลด และเวลาการถ่ายโอนที่ผ่านไปเมื่อการดาวน์โหลดไฟล์ดำเนินต่อไป
ตามปกติสำหรับบรรทัดคำสั่ง สิ่งสำคัญคือต้องระบุไวยากรณ์ที่แน่นอน
หากไฟล์หรือเส้นทางมีช่องว่างในชื่อ คุณสามารถใช้เครื่องหมายคำพูดหรือ Escape บนเส้นทางได้ดังนี้:
"scp [email protected]:/some remote directory/filename.zip>"
scp ยังสามารถใช้เพื่อวางไฟล์บนเซิร์ฟเวอร์ระยะไกลได้อย่างปลอดภัยโดยการปรับไวยากรณ์ด้วยเช่นกัน แต่เราเน้นไปที่การดาวน์โหลดไฟล์มากกว่าการอัปโหลดไฟล์ที่นี่
หากคุณยังใหม่กับ ssh และทดสอบสิ่งนี้ด้วยตัวคุณเอง และหากคุณไม่เคยเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลมาก่อน ระบบจะขอให้คุณยืนยันว่าคุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลจริงหรือไม่ เครื่องจักร. ดูเหมือนว่าจะเป็นเช่นนั้น และต้องมีคำตอบว่า 'ใช่' หรือ 'ไม่ใช่' ก่อนที่การดาวน์โหลดจะเริ่มต้นขึ้น % scp [email protected]:filename.zip ~/Desktop/ ไม่สามารถสร้างความถูกต้องของโฮสต์ '192.168.0.4 (192.168.0.4)' ได้ ลายนิ้วมือของคีย์ ECDSA คือ SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780 คุณแน่ใจหรือไม่ว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่ คำเตือน: เพิ่ม '192.168.0.4' (ECDSA) อย่างถาวรในรายการโฮสต์ที่รู้จัก รหัสผ่าน: filename.zip 100% 126 0.1KB/s 00:00 %
อีกครั้ง สมมติว่าการเชื่อมต่อได้รับการอนุมัติและการเข้าสู่ระบบสำเร็จ ไฟล์ระยะไกลจะดาวน์โหลดจากเซิร์ฟเวอร์เป้าหมายไปยัง localhost
คุณยังสามารถใช้ scp เพื่อดาวน์โหลดไฟล์หลายไฟล์จากเซิร์ฟเวอร์ระยะไกล:
scp user@host:/remote/path/\{file1.zip, file2.zip\} /Local/Path/
การใช้ ssh สำหรับการดาวน์โหลดไฟล์ระยะไกลเช่นนี้เหมาะสมที่สุดสำหรับการถ่ายโอนที่ปลอดภัยซึ่งต้องมีการตรวจสอบสิทธิ์ แน่นอนว่าคุณสามารถดาวน์โหลดไฟล์ด้วย curl หรือ wget จากเซิร์ฟเวอร์ระยะไกลได้ แต่ไฟล์ที่เข้าถึงได้ด้วย curl และ wget มักจะสามารถเข้าถึงได้จากโลกภายนอกเช่นกัน ในขณะที่ ssh และ scp ต้องใช้การพิสูจน์ตัวตนหรือคีย์ และใช้การเข้ารหัส 3DES ทำให้มีความสำคัญมาก ปลอดภัยยิ่งขึ้น