คำสั่งง่าย ๆ ในการเชื่อมต่อกับเซิร์ฟเวอร์ FTPS บนบรรทัดคำสั่ง Linux


17

ฉันมีเซิร์ฟเวอร์ FTP และ FTPS ที่ฉันสามารถเชื่อมต่อกับ FileZilla ได้อย่างง่ายดาย ฉันกำลังมองหาวิธี linux CLI ฉันคิดว่าlftpทำมัน แต่ดูเหมือนแปลก มีวิธีอื่นอีกไหม?

นี่คือวิธีการที่ฉันพบใน Google ในการเชื่อมต่อกับ FTPS lftpของฉันด้วย แต่ฉันหวังว่าจะมีวิธีที่ง่ายกว่า:

lftp -c 'open -e "set ftps:initial-prot ""; \
   set ftp:ssl-force true; \
   set ftp:ssl-protect-data true; \
   put test.txt; " \
   -u "USERNAME","PASSWORD" \
   ftps://HOSTNAME:990 '

รหัสที่ฉันได้รับด้านบนดูเหมือนว่าจะล้มเหลว - ยังไม่ได้ลองเลยเพราะฉันไม่ชอบฉันรู้ว่า\ต้องอยู่ที่ปลายบรรทัด

ฉันกำลังมองหาซับที่ง่ายกว่ามาก นี่คือวิธีที่ฉันเชื่อมต่อจากไคลเอนต์ FileZilla ใด ๆ และทำงานได้:

ftps://username:password@ftp.server.com/

นอกจากนี้ยังใช้งานได้:

ftps://username:password@ftp.server.com/

คุณควรแยกคำถามนี้ออกเป็นสองคำถามเนื่องจากพวกเขาเป็นจริง
Taegost

คำตอบ:


10

ฉันไม่ทราบว่าสิ่งนี้ไม่สามารถใช้ได้ใน lftp เวอร์ชัน 2013 แต่ตอนนี้คุณสามารถทำได้:

lftp -u YOUR_USER HOST_ADDRESS

ตัวอย่างเช่นในการเชื่อมต่อกับโฮสต์192.168.1.50กับผู้ใช้testคุณพิมพ์ดังต่อไปนี้:

lftp -u test 192.168.1.50

1
ทำงานได้ดีสำหรับฉัน โหวตขึ้นสิ่งนี้และลงคะแนนทุกอย่างไว้ข้างหน้า
ArtOfWarfare

9

หากแปลกคุณหมายถึงบรรทัดคำสั่งยาวที่มีเครื่องหมายคำพูดทั้งสองประเภทให้หลีกเลี่ยง ใช้สคริปต์และบันทึกบุ๊คมาร์ค อาจไม่มีไคลเอนต์ ftp ที่ดีกว่า lftp

  1. บันทึกสคริปต์ lftp ของคุณในไฟล์
  2. รัน lftp โดยไม่มีข้อโต้แย้งใด ๆ
  3. แหล่งสคริปต์
  4. บันทึกบุ๊คมาร์ค
  5. ลบสคริปต์ rhe (เพื่อกำจัดรหัสผ่านที่ชัดเจน)

ใช้ที่คั่นหน้าในอนาคต คุณจะต้องคิดออกว่ามีการบันทึกตัวเลือก ssl ไว้สำหรับคั่นหน้าหรือไม่หรือคุณต้องยืนยันการตั้งค่าเหล่านั้นผ่านไฟล์กำหนดค่า lftp ทั่วโลก


สคริปต์ตัวอย่าง

$ cat lftp.ssl.commands
user moo foopass
set ftps:initial-prot "";
set ftp:ssl-force true;
set ftp:ssl-protect-data true;
open ftps://HOSTNAME:990

ตัวอย่างผลลัพธ์

$ lftp
lftp :~> source  lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]

6

หรือคุณสามารถทำได้ในสคริปต์ทุบตี:

#!/bin/bash
lftp <<SCRIPT
set ftps:initial-prot ""
set ftp:ssl-force true
set ftp:ssl-protect-data true
open ftps://<hostname>:990
user <user> <password>
lcd /tmp
cd <ftp_folder_hierarchy>
put foo.txt
exit
SCRIPT

สิ่งนี้ไม่ควรสร้างการเปลี่ยนแปลง lftp ถาวรใน /etc/lftp.conf หรือ ~ / .lftprc หรือ ~ / .lftp / rc


3

มันจะล้มเหลวในบางเซิร์ฟเวอร์เนื่องจากการตั้งค่า ssl ควรส่งผ่านก่อนที่คำสั่ง open ไม่อยู่ในนั้น ตัวอย่างของการทำงานอย่างใดอย่างหนึ่ง:

lftp -c 'set ftp:ssl-allow true ; set ssl:verify-certificate no; open -u USERNAME,PASSWORD -e "cd /; mput LOCAL/PATH/TO/FILE/FILENAME.EXT; quit" HOST'

2

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

vi .lftprc

มีเนื้อหาด้านล่าง:

ชุด ftp: SSL-รับรองความถูกต้อง TLS
ชุด ftp: SSL แรงจริง
FTP ชุด: SSL ป้องกันรายการใช่
ชุด ftp: SSL ป้องกันข้อมูลใช่
ชุด ftp: SSL ป้องกัน-FXP ใช่
ชุด SSL: ตรวจสอบใบรับรองไม่มี

  1. หลังจากนั้นเชื่อมต่อกับเซิร์ฟเวอร์:

    lftp ชื่อผู้ใช้ @ hostname

และนั่นคือทั้งหมดที่ฉันตกลงตอนนี้!

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