Использование wget для загрузки каталогов по FTP без передачи пароля в качестве параметра

Когда у меня нет доступа к серверу по SSH, я обычно загружаю файлы по FTP, например:

wget -r ftp://user:pass@server/path/to/dir

Как сделать мой пароль более безопасным? Мне не нравится, что пароль указан в команде, но когда я пытаюсь сделать что-то вроде этого:

wget -r ftp://user@server/path/to/dir

это не работает. Выдает "Неверный логин".


person mattalxndr    schedule 11.03.2011    source источник
comment
обезопасить от чего? Какой сценарий атаки вы пытаетесь предотвратить?   -  person yan    schedule 11.03.2011
comment
@yan, передавать пароли в командах небезопасно. Он отображается в моей истории bash, моих сценариях и т. д. Кроме того, если я хочу изменить его, я бы хотел, чтобы он был в одном месте.   -  person mattalxndr    schedule 11.03.2011
comment
Использование ftp небезопасно, вы не определяете, что означает для вас безопасность. Вы хотите вводить его каждый раз? Вы боитесь, что .bash_history его кеширует? Это на общей машине?   -  person yan    schedule 11.03.2011
comment
@yan, если я хочу это изменить, я бы хотел, чтобы это было в одном месте. И хорошо, что меньше нужно печатать.   -  person mattalxndr    schedule 11.03.2011
comment
прочитайте раздел 5.5 из wget.addictivecode.org/   -  person James    schedule 11.03.2011
comment
@yan, gnu.org/software/wget/manual/wget .html#URL-Format Найдите важное примечание.   -  person mattalxndr    schedule 11.03.2011
comment
Насчет безопасности, вопрос в том, что более вероятно для злоумышленника прослушать ваше FTP соединение (и там получить ваш пароль в чистом виде), или войти в то же время на том же компьютере (и там получить пароль от командную строку при просмотре ps или аналогичной). Теперь я могу думать об обоих сценариях...   -  person Paŭlo Ebermann    schedule 13.03.2011


Ответы (2)


Вы можете поместить свои учетные данные в ~/.wgetrc следующим образом:

ftp_user = user
ftp_password = pass

В зависимости от ваших потребностей также можно использовать другое местоположение для этого файла конфигурации:

При инициализации Wget будет искать глобальный файл запуска, /usr/local/etc/wgetrc по умолчанию (или какой-либо префикс, отличный от /usr/local, если там не был установлен Wget) и читать оттуда команды, если он существует.

Затем он будет искать файл пользователя. Если установлена ​​переменная окружения WGETRC, Wget попытается загрузить этот файл. В противном случае дальнейшие попытки предприниматься не будут.

Если WGETRC не установлен, Wget попытается загрузить $HOME/.wgetrc.

person Martin    schedule 11.03.2011

Это также помогает:

wget -r --ask-password ftp://user@server/path/to/dir

ask_password = on/off также может быть объявлен в файле ~/.wgetrc.

person mattalxndr    schedule 11.03.2011