लिनक्स कमांड लाइन पर FTPS सर्वर से कनेक्ट करने के लिए सरल कमांड


17

मेरे पास एक एफ़टीपी और एफटीपीएस सर्वर है जहां मैं फाइलज़िला के साथ आसानी से जुड़ सकता हूं। मैं एक लिनक्स सीएलआई विधि की तलाश कर रहा हूं। मैंने सोचा था lftpकि यह करता है, लेकिन यह अजीब लगता है। क्या कोई और तरीका है?

यहां वह तरीका है जो मैंने अपने FTPS से कनेक्ट करने के लिए Google पर पाया है 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/

आपको संभवतः इसे दो अलग-अलग प्रश्नों में अलग करना चाहिए, क्योंकि वे वास्तव में हैं।
तायगेओस

जवाबों:


10

मुझे नहीं पता कि यह 2013 के lftp संस्करण पर उपलब्ध नहीं था, लेकिन अब आप बस कर सकते हैं:

lftp -u YOUR_USER HOST_ADDRESS

उदाहरण के लिए, 192.168.1.50उपयोगकर्ता के साथ होस्ट करने के लिए कनेक्ट करने के लिए test, आप केवल निम्नलिखित टाइप करते हैं:

lftp -u test 192.168.1.50

1
मेरे लिए बहुत अच्छा काम किया। इसको अपडाउन किया और इसके आगे सब कुछ डाउनवोट कर दिया।
आर्टऑफवर्फ

9

यदि अजीब तरह से आप दोनों प्रकार के उद्धरणों के साथ एक लंबी कमांड लाइन का मतलब रखते हैं, तो इससे बचें। स्क्रिप्ट का उपयोग करें और बुकमार्क को सहेजें। Lftp की तुलना में शायद कोई बेहतर ftp क्लाइंट नहीं हैं।

  1. एक फाइल में अपने lftp स्क्रिप्ट को बचाने के
  2. बिना किसी तर्क के लॉफ्ट चलाएं
  3. स्रोत स्क्रिप्ट
  4. एक बुकमार्क सहेजें।
  5. स्क्रिप्ट हटाएं (स्पष्ट पाठ पासवर्ड से छुटकारा पाने के लिए)

भविष्य में बुकमार्क का उपयोग करें। आपको यह पता लगाना होगा कि बुकमार्क के लिए ssl विकल्प सहेजे गए हैं या यदि आपको वैश्विक lft कॉन्फ़िगरेशन फ़ाइल के माध्यम से उन सेटिंग्स को जारी रखना है।


नमूना लिपि।

$ 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

यह /etc/lftp.conf, या ~ / .lftprc, या ~ / .lftp / rc में कोई स्थायी lftp परिवर्तन नहीं करना चाहिए।


3

यह कुछ सर्वरों पर विफल हो जाएगा, क्योंकि ssl सेटिंग्स को ओपन कमांड से पहले पारित किया जाना चाहिए, न कि उसके भीतर। एक काम करने का उदाहरण:

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-SSL TLS
सेट ftp: ssl-force true
set ftp: ssl-protect-list हां
सेट ftp: ssl-protect-data हां
सेट ftp: ssl-protect-fcp हां
सेट ssl: सत्यापन-प्रमाण पत्र संख्या

  1. उसके बाद, सर्वर से कनेक्ट करें:

    lftp उपयोगकर्ता नाम @ होस्टनाम

और यह सब मेरे लिए अब ठीक है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.