[OpenSSH]

История и участники проекта


OpenSSH основан на свободной версии SSH 1.2.12 от Tatu Ylönen. Эта версия была достаточно свободной, для использования её в нашем проекте. Некоторые части OpenSSH все ещё находится под лицензией Tatu. Эта и более старые версии использовали математические функции из библиотеки libgmp. Библиотека libgmp доступна под (LGPL) Lesser GNU Public Licence, хотя в то время она находилась под обычной (GPL) GNU Public Licence.

Объединённая лицензия для всех частей OpenSSH доступна на http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE.

После версии 1.2.12, новые версии выпускались со все более ограничивающей лицензией, хотя libgmp все ещё был включён и необходим для использования ssh. Сначала они запретили создавать Windows и DOS версии ssh. Позднее они запретили использование ssh в коммерческих целях, и предлагали купить достаточно дорогую версию у Datafellow.

Ранее, в 1999 году, Björn Grönvall занялся разработкой последней версии и начал исправлять ошибки. Его версия ssh называется OSSH, и на тот момент она поддерживала только SSH протокол версии 1.3. Говорят, что OSSH был интегрирован в какой-то коммерческий продукт в Швеции. На текущий момент в OSSH до сих пор нет поддержки протокола SSH 2.

Участники проекта OpenBSD узнали о работе Björn менее чем за два месяца перед релизом OpenBSD 2.6. Мы хотели включить поддержку ssh протокола в OpenBSD 2.6, но мы должны были убедится в том, что она достаточно хороша. Поэтому мы решили взять за основу OSSH и продолжить разработку. Процесс шел очень быстро, так как мы должны были быть готовы к сроку.

Список разработчиков:

OpenSSH основан на старой версии ssh 1.2.12, но с многочисленными исправлениями ошибок и добавленными возможностями:

Это относится к OpenSSH 1.2.2, который был включён в OpenBSD 2.6, выпущенную 1-го декабря, 1999. С того времени, в разработке OpenSSH участвовали Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, и Dug Song. Мы благодарим всех, кто нашёл ошибки и сообщил о них.

Портирование OpenSSH

После того, как мы выпустили нашу реализацию протокола SSH 1, многие другие группы заинтересовались проектом. Damien Miller, Philip Hands и многие другие начали портировать OpenSSH на GNU/Linux и на другие Unix операционные системы. Перед появлением нашего проекта, мы чувствовали, что даже оригинальная реализация SSH была усложнена; она имела очень много зависимостей от операционных систем. Наш подход к написанию безопасного и чистого кода позволил избежать этого, сделал весь процесс разработки проще для всех - мы отделили базовую разработку от портирования.

Поддержка протокола SSH 2

После выхода OpenBSD 2.6, Markus Friedl решил сделать поддержку протокола SSH 2. Работая несколько месяцев, он сумел сохранить OpenSSH таким же простым и маленьким, но в тоже время сделать поддержку обоих протоколов SSH 1 и SSH 2. Эта версия называлась OpenSSH 2.0 и была включена в OpenBSD 2.7. Проверкой изменений Markus, занимались Niels Provos и Theo de Raadt. Bob Beck обновил OpenSSL на более новую версию.

Поддержка SFTP

Поддержка сервера подпротокола SFTP была написана Markus Friedl и включена в OpenSSH 2.3.0, в Ноябре 2000. Вскоре, Damien Miller начал работу над клиентом sftp, который появился в OpenSSH версии 2.5.0.

Сканирование версии SSH сервера

Чтобы облегчить контроль распространения SSH серверов, например для сети компании, Niels Provos написал утилиту scanssh. scanssh сканирует список адресов и сетей на запущенные SSH сервера и их номер версии. Она поддерживает случайный выбор адресов из больших диапазонов сети и полезна для сбора статистики по используемым SSH серверам в компании или во всем Internet. Статистика включает поддерживаемые SSH протоколы и версию SSH сервера.

scanssh используется для сбора статистики о внедрении и использовании протокола SSH в сети Интернет. Измерения позволяют взглянуть на распределение различных протоколов и реализаций SSH.


SSH: Completely free at last.

SSH... Don't Tell Anyone It's Free
OpenSSH www@openbsd.org
$OpenBSD: history.html,v 1.12 2012/12/16 07:54:13 ajacoutot Exp $