2013-07-23 16:29:23 +0000 2013-07-23 16:29:23 +0000
17
17

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

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

Код, который я нашел выше, выглядит так, как будто он провалится - еще не пробовал, так как он мне не нравится, я знаю, что У меня есть 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/

Ответы (5)

10
10
10
2016-04-14 06:26:07 +0000

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

lftp -u YOUR_USER HOST_ADDRESS

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

lftp -u test 192.168.1.50
9
9
9
2013-07-23 20:43:30 +0000

Если под странным вы подразумеваете длинную командную строку с обоими типами кавычек, то избегайте этого. Используйте скрипт и сохраните закладку. Вероятно, нет лучшего 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
6
6
2016-01-29 15:13:50 +0000

Или ты можешь сделать это по сценарию бэша:

#!/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
3
3
2016-05-05 12:06:54 +0000
2
2
2
2018-03-25 01:39:10 +0000

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

vi .lftprc

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

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-certificate no

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

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

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