++ Зачем нужен sftpВ протоколе FTP есть 2 ключевые проблемы - во первых, пароли и данные передаются в открытом виде, во вторых - для каждой передачи устанавливается дополнительное соединение. Для шифрования данных и контрольного соединения был написан FTPS, но с ним проблем еще больше - все также требуется дополнительное соединение при передаче, а главное - контрольный канал теперь зашифрован и firewall никак не может помочь в прохождении FTP трафика через NAT. Кроме того - существуют различия в реализации, что добавляет еще больше проблем при использовании FTPS. SFTP - полностью новый протокол разработанный IETF SECSH, предлагающий аналогичные FTP возможности для удаленных операций и использующий SSH (обычно SSH2) для обеспечения шифрования и аутентификации. Известность получил в основном из-за того, что был встроен в SSH сервера, в частности - в OpenSSH 2.3.0 и выше.
++ Недостатки sftp в OpenSSH
До OpenSSH 4.9 sftp сервер требовал запуска внешнего исполняемого файла и построение chroot окружения было связанно с дополнительными действиями. Невозможно ограничить скорость передачи для конкретного пользователя. Сложно сделать отличную от SSH базу с пользователями. В целом - sftp сервер в OpenSSH всегда был лишь приятным дополнением к OpenSSH предоставляя на порядок меньшие возможности чем, например, proftpd. Впрочем, недавно необходимость выбора между удобством и безопасностью отпала так как был написан и реализован модуль mod_sftp для proftpd, о нем и пойдет речь.
++ Использование модуля
Впервые модуль появился в версии 1.3.2rc2, но на мой взгляд - уже вполне пригоден к использованию. Он не компилируется по умолчанию, так что для его использования надо указать его на этапе configure. Вы можете собрать proftpd из исходников, или если у вас redhat based OS - воспользоваться моим [[http://rpms.varien.com/src/sqlite2-2.8.17-1.varien.src.rpm src.rpm]]. Модуль имеет множество возможностей полный список которых можно [[http://www.castaglia.org/proftpd/modules/mod_sftp.html посмотреть на сайте]]. Для минимальной настройки достаточно внести такие дополнения в файл конфигурации по умолчанию:
Port 8022
SFTPEngine on
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key
и запустить proftpd. Теперь можно подключаться к порту 8022 любым sftp клиентом, например - мультиплатформенной FileZilla или command line sftp из комплекта OpenSSH. Используя виртуальные сервера можно сделать одновременную работу SFTP и FTP(S), ограничить доступ, сделать chroot для всех или некоторых сайтов и так далее. За примерно месяц использования я не обнаружил каких либо минусов данного решения по сравнению с OpenSSH sftp.URL:
Обсуждается: http://www.opennet.me/tips/info/2234.shtml
В русском языке слово "сервер" во множественном числе звучит как "серверы", а не "сервера".
http://gramota.ru/slovari/dic/?word=ЯЕПБЕПШ&all=x
Очень, очень важное замечание. Только с чего бы ему так звучать?
нубы безграмотные, слово "сервера" используется на профессиональном уровне, в то время как "серверы" -- общепринятое множественное число, используемое в документах и просторечье.
Ага, как "трактора", "комбанера"... Развелось "председателей колхозов"...
В словаре приведено окончание для родительного падежа, посмотрите например слово "колхозник", там тоже указано окончание "а".
Ага, а корабль плывет.
Или тонет... ;)
Почему-то когда выговаривают -ры, сразу вспоминается "миллион лет до нашей эры" и толпа дикарей, которые с блаженными лицами пытаются выговорить имя девчёнки.
А по делу кто-нить скажет, или мы будем и дальше учить друг друга русскому языку?
Кто знает - тому пофиг, кто не знает - тому нафиг.
Вроде по делу высказался.
А rsync с этим всем работать будет???
>А rsync с этим всем работать будет???Дядя, какой рсинг? Вы неадекватны.
>>А rsync с этим всем работать будет???
>
>Дядя, какой рсинг? Вы неадекватны.Ничего личного, как говорится только учусь! Но просто интересно, можно ли к этому всему прикрутить rsync. Если нет, то почему?
>>>А rsync с этим всем работать будет???
>>
>>Дядя, какой рсинг? Вы неадекватны.
>
>Ничего личного, как говорится только учусь! Но просто интересно, можно ли к
>этому всему прикрутить rsync. Если нет, то почему?rsync - это совершенно другой протокол, для реализации которого используется одноименный софт (rsync). К proftpd он не имеет никакого отношения. Параллельно его запустить, конечно, можно, только не совсем понятно зачем. Обычно используется для синхронизации, так как позволяет существенно экономить трафик и упрощает создание зеркал.
Я это знаю, но ведь rsync работает и через ssh/sftp. Вот я и предположил, что можно запустить rsync c proftpd-sftp. На сколько я понял, я ошибался и эта связка у меня не заработала.
>Я это знаю, но ведь rsync работает и через ssh/sftp. Вот я
>и предположил, что можно запустить rsync c proftpd-sftp. На сколько я
>понял, я ошибался и эта связка у меня не заработала.У вас каша в голове.
1) Рсинк никогда не работал через сфтп. Совсем. СФТП - отдельный протокол, описанный в соответствующем RFC и не имеющий _никакого_ отношения к рсинк.
2) Рсинк умеет использовать SSH в качестве транспорта (!) (rsync over ssh), при этом за файл трансфер отвечает по прежнему программа рсинк, а ссх - безопасный транспорт, и все. При этом в рсинк нет внутренней поддержки ссх, так что он использует для этих целей системный.
3) SFTP в proftpd НЕ использует системный ssh и реализует поддержку сфтп И транспорта собственными средствами, не используя системный sshd/ssh.Надеюсь стало понятнее.
>[оверквотинг удален]
>
>2) Рсинк умеет использовать SSH в качестве транспорта (!) (rsync over ssh),
>при этом за файл трансфер отвечает по прежнему программа рсинк, а
>ссх - безопасный транспорт, и все. При этом в рсинк
>нет внутренней поддержки ссх, так что он использует для этих целей
>системный.
>3) SFTP в proftpd НЕ использует системный ssh и реализует поддержку сфтп
>И транспорта собственными средствами, не используя системный sshd/ssh.
>
>Надеюсь стало понятнее.Да, я все понял и каши больше нет.
Спасибо Вам за разъяснения.
Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider, но в итоге получал ошибку:
mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exitingчитал доку, но так и не понял что туда нужно вводить, у кого есть рабочий пример поделитесь плиз!
> Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase
> на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider,
> но в итоге получал ошибку:
> mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
> mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exiting
> читал доку, но так и не понял что туда нужно вводить, у
> кого есть рабочий пример поделитесь плиз!Просто используйте ключ без passphrase
>> Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase
>> на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider,
>> но в итоге получал ошибку:
>> mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
>> mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exiting
>> читал доку, но так и не понял что туда нужно вводить, у
>> кого есть рабочий пример поделитесь плиз!
> Просто используйте ключ без passphraseПолучилось, спасибо!