Используя lftp с ssh-агентом

Требует shopt -s extglob:

bash-4.1# STRING='aaa.bbb.ccc.[ddd].eee.fff.[ggg].hhh'

bash-4.1# echo "${STRING//\[+([^\]])\]}"
aaa.bbb.ccc..eee.fff..hhh
2
13.04.2017, 15:37
4 ответа

SFTP и LFTP звучит похожие, но имеют мало общего на «слое подключения и аутентификации». SFTP использует SSH для подключения и аутентификации и использует внутренний сервер SSH SVETP после этого. В своем режиме по умолчанию LFTP подключается к FTP-серверу и не имеет отношения к SSH (таким образом, SSH-Agent . Он также может подключаться к серверам SFTP, но это не актуально в этом случае.

0
27.01.2020, 21:49

На самом деле это просто бородавка LFTP, которая даже запрашивает пароль. Если вы предоставите фиктивный пароль, например буквальную строку DUMMY (например, lftp sftp: // : DUMMY @ ), lftp не будет запрашивать пароль, а затем сверится с агентом ssh. Имейте в виду, что если у вас не настроен ключ, будет использоваться пароль .

В качестве альтернативы вы можете переопределить параметр lftp sftp: connect-program , чтобы принудительно использовать ssh для определенного ключевого файла без необходимости настраивать агент (фиктивный пароль все равно потребуется). (Один из способов) это можно сделать так: lftp sftp: // : DUMMY @ -e 'set sftp: connect-program "ssh -a -x -i " '.

sftp: программа подключения - это параметр, который lftp использует для создания сеанса sftp. По умолчанию это ssh -a -x , но это может быть практически любая команда (точные ограничения см. На странице руководства lftp). Здесь я просто использую параметр -i для принудительного использования определенного закрытого ключа.

(ПРИМЕЧАНИЕ: все биты в приведенных выше примерах следует заменить фактическими значениями.


Чтобы исправить некоторые вещи в принятом ответе ...

  • нет ' t внутренний FTP-сервер в SSH; sftp - это собственный протокол, разработанный как расширение ssh. В конце у него есть только ftp, потому что это протокол передачи файлов, у них очень мало общего в деталях.

  • Кроме того, хотя LFTP может подключаться напрямую к FTP, он также может подключаться к тонне других протоколов.При подключении с помощью sftp он напрямую вызывает ssh для обработки установления соединения, и, таким образом, применяются все обычные методы аутентификации ssh. Команду, которую LFTP использует для вызова ssh, можно перенастроить с помощью опции sftp: connect-program (отсюда и вторая альтернатива, указанная выше).

11
27.01.2020, 21:49

Самый простой способ сделать это:lftp -u username, sftp://hostname.

Символ ,после имени пользователя помогает.

6
27.01.2020, 21:49

Пустой пароль также можно указать в самой строке сайта, вставив двоеточие после имени пользователя;lftp sftp://<user>:@<site>

4
27.01.2020, 21:49

Теги

Похожие вопросы