Lệnh đơn giản để kết nối với máy chủ FTPS trên dòng lệnh Linux


17

Tôi có máy chủ FTP và FTPS nơi tôi có thể kết nối dễ dàng với FileZilla. Tôi đang tìm kiếm một phương pháp CLI linux. Tôi nghĩ rằng lftpnó làm điều đó, nhưng nó có vẻ kỳ lạ. Có cách nào khác không?

Đây là phương pháp tôi tìm thấy trên Google để kết nối với FTPS của mình lftp. Nhưng tôi hy vọng có một cách dễ dàng hơn:

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 '

Mã tôi nhận được ở trên có vẻ như nó sẽ thất bại - chưa thử nó vì tôi không thích nó, tôi biết rằng \cần phải ở cuối dòng.

Tôi đang tìm kiếm một lớp lót đơn giản hơn nhiều. Đây là cách tôi kết nối từ bất kỳ máy khách FileZilla nào và nó hoạt động:

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

Ngoài ra, điều này hoạt động:

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

Bạn có lẽ nên tách điều này thành hai câu hỏi khác nhau, vì chúng thực sự là.
Taegost

Câu trả lời:


10

Tôi không biết liệu điều này không có trên phiên bản 2013 của lftp, nhưng bây giờ bạn có thể chỉ cần làm:

lftp -u YOUR_USER HOST_ADDRESS

Ví dụ: để kết nối với máy chủ 192.168.1.50với người dùng test, bạn chỉ cần nhập như sau:

lftp -u test 192.168.1.50

1
Làm việc tuyệt vời cho tôi. Nâng cao điều này và hạ cấp tất cả mọi thứ trước nó.
ArtOfWarfare

9

Nếu kỳ lạ, bạn có nghĩa là một dòng lệnh dài với cả hai loại dấu ngoặc kép, chỉ cần tránh nó. Sử dụng một tập lệnh và lưu dấu trang. Có lẽ không có khách hàng ftp nào tốt hơn lftp.

  1. lưu tập lệnh lftp của bạn trong một tập tin
  2. chạy lftp mà không có bất kỳ đối số
  3. nguồn kịch bản
  4. lưu một dấu trang.
  5. xóa tập lệnh rhe (để thoát khỏi mật khẩu văn bản rõ ràng)

Sử dụng bookmark trong tương lai. Bạn sẽ phải tìm hiểu xem các tùy chọn ssl có được lưu cho dấu trang hay không nếu bạn phải duy trì các cài đặt đó thông qua tệp cấu hình lftp toàn cầu.


Kịch bản mẫu.

$ 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

Sản lượng mẫu.

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

6

Hoặc bạn có thể làm điều này trong một tập lệnh bash:

#!/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

Điều này không nên tạo ra bất kỳ thay đổi lftp vĩnh viễn nào trong /etc/lftp.conf hoặc ~ / .lftprc hoặc ~ / .lftp / rc


3

nó sẽ thất bại trên một số máy chủ, vì cài đặt ssl phải được thông qua trước khi lệnh mở không nằm trong nó. ví dụ về làm việc một:

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

Tôi thử kết nối với máy chủ proftpd với cấu hình ở trên nhưng nó không thể đăng nhập nên khi tôi thử điều này, nó vẫn ổn.
1. Tạo tập tin cấu hình tập lệnh

vi .lftprc

với nội dung dưới đây:

set ftp: ssl-auth TLS
set ftp: ssl-force true
set ftp: ssl -Protect-list yes set ftp: ssl-Protect
-data yes
set ftp: ssl-Protect-fxp yes
set ssl: verify- cert no

  1. Sau đó, kết nối với máy chủ:

    tên người dùng lftp @ tên máy chủ

và đó là tất cả OK cho tôi bây giờ!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.