Хочется качать не только терренты на стороне FreeNAS, но и web-контент - освобождаем процессорное время рабочих станций.
В FreeNAS создаём пользователя для этого дела - wgetu
Для этого пользователя определим домашнюю директорию /mnt/wget
В этой директории будет хранится публичный ключ. Несмотря на то, что он публичный, выставляем права только на чтение для хозяина wgetu
Даём этому пользователю права на запись в директорию /mnt/Download/
Устанавливаем на Windows-стороне на FireFox дополнение FlashGot
Это дополнение перехватывает из браузера линки файлов и передаёт загрузчикам.
В нашем случае загрузчиком будет Wget на стороне сервера. Ну а более конкретным выбором качалки будем определяться в следующем моём посте - WEB-качалка: Wget или cURL?
Есть ещё эксперементальное дополнение Cliget, но я не совсем понял для чего оно. Это дополнение формирует коммандную строку с куками для wget и curl. На этом автоматизация заканчивается. Добавил отзыв:Но как запусть процесс на строне сервера?
Please add to Download Dialog radio button for execute command.Будем ждать новую версию...
And possibility of addition of a prefix:
ssh wgetuser@serveraddr 'wget -O "download_file.exe"'
Через SSH, конечно :)
Подразумевается, что OpenSSH уже стоит.
В коммандной строке уже Windows выполняем:
>ssh wgetu@10.10.10.10 'wget -O......'Как обойти ввод пароля?
Ключами SSH, конечно :)
На Windows-стороне генерируем ключи:
>ssh-keygen -t dsaЭто мы сгенерировали ключи типа DSA
- приватный
- публичный
Приватный служит для подписи (но не шифрования). Подпись создается секретно, но может быть публично проверена. Это означает, что инициатор (в нашем случае Windows-клиент) секретно подписывает, а проверить при помощи публичного ключа может любой. Соответственно FreeNAS-у достаточно знать публичный ключ. Обращаю внимание, что в web-морде FreeNASa не надо указывать сгенерированный приватный ключ. Приватный, в свою очередь, хранится в секрете на Win-клиенте, какбы смешно это не звучало :)
Ключи складываются в профиле пользователя в директорию .ssh
Публичный ключ надо показать проверяющей стороне - FreeNASу.
Заходим на сервак консолью под пользователем wgetu и создаём в домашней директории файл authorized_keys, являющийся публичным ключём:
mkdir ~/.sshНесмотря на то, что ключ публичный, это не означает, что его нельзя подменить. Поэтому даём права только хозяину - wgetu.
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Копируем в authorized_keys содержимое публичного ключа с Windows.
Проверяем!
Чтобы проверить мы попробуем зайти на сервачёк WinSCP через ключ, не используя пароль. Этой приблуде надо скормить приватный ключ, но в формате PuTTY. Для конвертации ключа используем утилиту puttygen.exe из пакета PuTTY.
Получилось! Но помним, что приватный ключ, который указывается WinSCP является секретным! Это означает, что поиграться с пользователями и правами надо и на винде.
Теперь пробуем выполнить команду на стороне сервера, запуская её на винде:
>ssh wgetu@10.10.10.10 'shutdown -h -now'Кажется, получилось! :)
shutdown: Permission denied
Дополнительно можно почитать на английском про SSH авторизацию без пароля - SSH Passwordless authentication
UPD: май 2012 - Финальные аккорды по этой теме: web-качалка finality
X11
На правах заметки на полях приведу урывок отсюдава:
Одной из наимение известных функций SSH является перенаправление протокола X. Это позволяет запускать практически любое X приложение удалённо! Для этого всего лишь нужно добавить параметр -X при соединении с удалённым сервером:
После этого изображения всех запущенных X приложений будут перенаправлены на ваш локальный X сервер. В файле /etc/ssh/ssh_config можно включить постоянное использование перенаправления X11 (указав ForwardX11 yes). Разумеется, чтобы этот параметр сработал, удалённый SSH сервер должен также поддерживать перенаправление X11. Настроить это можно отредактровав файл /etc/ssh/sshd_config.ssh -X user1@remote_server
Комментариев нет:
Отправить комментарий