Простая команда для подключения к серверу FTPS в командной строке Linux


17

У меня есть сервер 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/

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

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

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

2

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

vi .lftprc

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

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

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

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

и теперь все в порядке для меня!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.