История проекта и кредиты
OpenSSH является производной от free ssh 1.2.12 релиза Tatu Ylönen. Эта версия
была последней, которой можно было относительно легко пользоваться при работе над нашим
проектом. Некоторые части OpenSSH все еще залицензированы Tatu, что было указано в том
релизе. В этой версии, также как и в предыдущих версиях, были использованы математические
функции из библиотеки libgmp. Эта библиотека была также включена в эти ранние ssh версии.
Библиотека libgmp стала доступной по лицензии (LGPL) Lesser GNU Public Licence, хотя версии
того времени имели постоянную лицензию (GPL) GNU Public Licence.
Общая лицензия доступна на http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE?rev=HEAD.
Вскоре после 1.2.12 релиза, более новые версии лицензировались все более и более строго,
хотя libgmp все еще был в них включен и неободим для использования программного обеспечения.
Первые ограничительные лицензии запрещали пользователям создавать версии для Windows
или DOS. Более поздние лицензии запрещали использование ssh в коммерческих целях, вместо того,
чтобы требовать от компаний приобретения дорогих версий от Datafellows.
В начале 1999, Björn Grönvall наткнулся на данный релиз и начал исправление
ошибок. Его версия ssh была названа OSSH и имела поддержку только для SSH 1.3 protocol. Говорят, что OSSH был объединен для создания неких коммерческих продуктов в Швеции.
На сегодняшний день, OSSH все еще не имеет поддержки SSH 2 protocol.
Участники проекта OpenBSD приняли результаты работы Björn менее, чем за два месяца до
выхода OpenBSD 2.6 релиза. Мы хотели включить поддержку для ssh protocol в 2.6 релиз, но нам пришлось вносить еще дополнения, чтобы убедиться
в том, что все работает отлично. Таким образом, мы сразу же решили отойти от OSSH релиза и
вплотную заняться исследованиями в том же направлении, в каком протекал процесс контроля
безопасности OpenBSD. В результате, во время выхода релиза многие файлы с исходным текстом находились уже на RCS редакции 1.34, некоторые на редакции 1.66. Работы продвигались очень быстро, так как мы были ограничены временными рамками.
Над проектом работали следующие участники:
- Theo de Raadt (КАНАДА) начал с удаления непереносимостей, которые усложняли чтение программы, -- главной его целью было упрощение исходного кода, для более быстрого выявления и устранения
дыр в системе безопасности и других проблем.
- Niels Provos (ГЕРМАНИЯ, живет в США) быстро удалил остававшиеся криптографические и
GPL'd компоненты, совершив множество поездок в Канаду, чтобы мы могли легко работать с базой
исходного кода, пользуясь ей при этом так часто, как только возникнет необходимость.
- Markus Friedl (ГЕРМАНИЯ) приступил к работе и сразу же заменил код SSH 1.3 protocol из
1.2.12 релиза на имплементацию SSH 1.5 protocol, совместимую с современным "ssh 1.2.27" (это
изменение было необходимо для работы с многочисленными пользователями Windows, совместимой
с SSH, где отсутствует поддержка для SSH 1.3). Его имплементация теперь используется в OSSH.
Он добавил поддержку SSH 1.5 protocol таким образом, что поддержка SSH 1.3 protocol осталась
действующей. Позже, он также добавил поддержку для SSH 2 protocol и SFTP.
- Bob Beck (КАНАДА) помог в работе над Makefile magic с целью возможной компилляции OpenSSL
без патентованных алгоритмов; поскольку OpenBSD 2.6 был выпущен до окончания срока действия
RSA патента, нам необходимо было выпустить наш CD с libssl и libcrypto общей библиотекой, где бы
не было RSA. Во время инсталляции пользователь мог заменить эти библиотеки через Интернет при
помощи FTP/HTTP. К счастью, сейчас нет необходимости в таком "хакерстве".
- Aaron Campbell (КАНАДА) улучшил многочисленные недоработки в документации, а также некоторые
другие проблемы с кодом. Главным образом, именно благодаря ему руководство получилось таким
подробным.
- Dug Song (США) помог в решении некоторых проблем с аутентификацией KerberosIV (его изменения
были тщательно проверены на то, чтобы они не затрагивали криптографию, а касались лишь проблем
аутентификации).
Таким образом, версия OpenSSH базировалась на этих более старых версиях ssh 1.2.12, но в ней
были устранены многие ошибки и добавлены новые характеристики:
- теперь все компоненты ограничительного свойства (т.е. патенты, смотрите ssl)
удалены из исходного кода; все лицензированные или запатентованные компоненты выбраны из
внешних библиотек (напр. OpenSSL).
- была добавлена поддержка для KerberosIV
аутентификации и системы паролей.
- была добавлена поддержка аутентификации после однократного ввода пароля при помощи клавиши
skey
- И сотни других изменений, которые можно заметить на страницах new man, а также в исходном
коде.
Таковы особенности релиза OpenSSH 1.2.2, который был выпущен вместе с OpenBSD 2.6 1-го декабря, 1999. В то время разработками OpenSSH, главным образом, занимались Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt и Dug
Song. Мы благодарим тех пользователей, которые обнаружили какие-то ошибки и сообщили нам о них.
Подсоединение OpenSSH
Почти сразу же после того, как мы ввели в работу нашу имплементацию protocol 1, различные non-OpenBSD группы проявили к ней большой интерес. Damien Miller, Philip
Hands, и другие, начали переносить OpenSSH в Linux и другие операционные системы Unix. С
самого начала нашей работы над SSH мы почувствовали, что даже изначальный код ssh слишком запутан; другими словами, в ней было слишком много зависимостей от операционной
системы, с которыми приходилось работать. Мы старались написать абсолютно безопасный и надежный
код, избегая при этом обращаться к чрезмерным приращениям такого рода. Таким образом, чтобы
облегчить для всех процесс разработки, мы решили разделить наши усилия на исследования по разработке ядра и исследования по изучению мобильности. У нас это отлично получилось (К примеру,
сравните количество строк кода в базовой строке и в мобильных версиях).
Поддержка SSH 2 Protocol
Не имея необходимости работать с релизом OpenBSD 2.6,
Markus Friedl решил взяться за поддержку SSH
2 protocol. Посвятив этому месяцы, он сумел сохранить стройность и простоту OpenSSH,
в то же время преобразовав его в единый программный продукт, способный работать как по SSH 1,
так и по SSH 2 protocols. Данная версия, названная OpenSSH 2.0, была выпущена вместе с OpenBSD 2.7
15 июня, 2000. Большинство изменений, которые внес Markus, были отредактированы Niels Provos и
Theo de Raadt. Выражаем также благодарность Bob Beck за обновление OpenSSL.
Поддержка SFTP
Поддержка для server side SFTP sub-protocol была написана Markus Friedl и выпущена в релизе 2.3.0, в ноябре 2000.
Вкоре после этого Damien Miller начал работу над sftp client, впервые выпущенным в релизе 2.5.0.
Просмотр серверных версий SSH
Для облегчения мониторинга используемых серверов SSH,
например, для сети внутри компании, Niels Provos написал scanssh. scanssh просматривает список адресов и
сетей на наличие работающих серверов SSH и номера их версий. Он поддерживает произвольный выбор
IP адресов из большого количества сетей и полезен тем, что собирает ситатистику по использованию
серверов SSH в пределах одной компании или по всему Интернету. Статистика включает в себя поддерживаемый SSH protocol, а также используемое программное обеспечение.
scanssh используется для сбора статистики по введению в действие и использованию SSH protocol в Интернете. Измерения позволяют лучше понять дистрибуцию разных
SSH protocols и проследить внедрение на рынок определенных серверных версий.
SSH: Наконец совершенно свободен.
www@openbsd.org
$OpenBSD:
history.html,v 1.30 2002/01/20 11:19:06 jufi Exp $