13

У меня есть сервер FTP и FTPS, к которому я могу легко подключиться с помощью FileZilla. Я ищу метод CLI Linux. Я думал, что 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/

5 ответов5

7

Если под странным вы подразумеваете длинную командную строку с обоими типами кавычек, просто избегайте ее. Используйте скрипт и сохраните закладку. Вероятно, нет лучших клиентов ftp, чем lftp.

  1. сохраните свой скрипт lftp в файле
  2. запустить lftp без аргументов
  3. источник сценария
  4. сохранить закладку
  5. удалить скрипт (чтобы избавиться от открытого текста пароля)

Используйте закладку в будущем. Вам нужно выяснить, сохранены ли параметры 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

Я не знаю, было ли это недоступно в версии lftp 2013 года, но теперь вы можете просто сделать:

lftp -u YOUR_USER HOST_ADDRESS

Например, чтобы подключиться к хосту 192.168.1.50 с помощью пользовательского test , введите только следующее:

lftp -u test 192.168.1.50
5

Или вы можете сделать это в 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

Это не должно создавать никаких постоянных изменений 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'
0

Я пытаюсь подключиться к серверу proftpd с вышеуказанным конфигом, но он не может войти, поэтому, когда я пытаюсь это сделать, все в порядке.
1. Создайте файл конфигурации скрипта

vi .lftprc

с содержанием ниже:

установить ftp:ssl-auth TLS
установите ftp:ssl-force true
установить ftp:ssl-protect-list yes
установить ftp:ssl-protect-data да
установить ftp:ssl-protect-fxp да
установить ssl: проверить-сертификат нет

  1. После этого подключитесь к серверу:

    имя пользователя lftp @ hostname

и это все нормально для меня сейчас!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .