Требует 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
SFTP
и LFTP
звучит похожие, но имеют мало общего на «слое подключения и аутентификации». SFTP
использует SSH для подключения и аутентификации и использует внутренний сервер SSH SVETP после этого. В своем режиме по умолчанию
LFTP
подключается к FTP-серверу и не имеет отношения к SSH (таким образом, SSH-Agent
. Он также может подключаться к серверам SFTP, но это не актуально в этом случае.
На самом деле это просто бородавка LFTP, которая даже запрашивает пароль. Если вы предоставите фиктивный пароль, например буквальную строку DUMMY
(например, lftp sftp: //
), lftp не будет запрашивать пароль, а затем сверится с агентом ssh. Имейте в виду, что если у вас не настроен ключ, будет использоваться пароль .
В качестве альтернативы вы можете переопределить параметр lftp sftp: connect-program
, чтобы принудительно использовать ssh для определенного ключевого файла без необходимости настраивать агент (фиктивный пароль все равно потребуется). (Один из способов) это можно сделать так: lftp sftp: //
.
sftp: программа подключения
- это параметр, который lftp использует для создания сеанса sftp. По умолчанию это ssh -a -x
, но это может быть практически любая команда (точные ограничения см. На странице руководства lftp). Здесь я просто использую параметр -i
для принудительного использования определенного закрытого ключа.
(ПРИМЕЧАНИЕ: все биты
в приведенных выше примерах следует заменить фактическими значениями.
Чтобы исправить некоторые вещи в принятом ответе ...
нет ' t внутренний FTP-сервер в SSH; sftp - это собственный протокол, разработанный как расширение ssh. В конце у него есть только ftp, потому что это протокол передачи файлов, у них очень мало общего в деталях.
Кроме того, хотя LFTP может подключаться напрямую к FTP, он также может подключаться к тонне других протоколов.При подключении с помощью sftp он напрямую вызывает ssh для обработки установления соединения, и, таким образом, применяются все обычные методы аутентификации ssh. Команду, которую LFTP использует для вызова ssh, можно перенастроить с помощью опции sftp: connect-program
(отсюда и вторая альтернатива, указанная выше).
Самый простой способ сделать это:lftp -u username, sftp://hostname
.
Символ ,
после имени пользователя помогает.
Пустой пароль также можно указать в самой строке сайта, вставив двоеточие после имени пользователя;lftp sftp://<user>:@<site>