[OpenSSH]

Projektgeschichte und Danksagungen


OpenSSH ist ein Derivat der originalen und freien ssh-Version 1.2.12 von Tatu Ylönen. Das war die letzte Version, die frei genug war, um von unserem Projekt benutzt werden zu können. Teile von OpenSSH tragen nach wie vor Tatus Lizenz, die in dieser Version beinhaltet war. Diese Version und auch frühere Versionen benutzen mathematische Funktionen aus der libgmp-Bibliothek, die auch in frühen ssh-Versionen enthalten war. Die libgmp-Bibliothek unterliegt der Lesser GNU Public Licence (LGPL) obwohl Versionen dieser Ära der regulären GNU Public Licence (GPL) unterlagen.

Eine kombinierte Lizenz für alle Teile befindet sich unter http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE.

Schnell nach der Veröffentlichung der Version 1.2.12 hatten darauf folgende Versionen immer restriktivere Lizenzen, obwohl libgmp noch immer darin enthalten und notwendig war, um die Software zu benutzen. Frühe restriktive Versionen verboten den Leuten, Windows- oder DOS-Versionen zu erzeugen. Spätere Versionen beschränkten ssh bei einer Benutzung in einer kommerziellen Umgebung und zwangen Firmen dadurch, teure Versionen von Datafellows zu kaufen.

Früh im Jahre 1999 entdeckte Björn Grönvall diese spezielle Version wieder und begann, darin Fehler zu beheben. Seine Version von ssh heißt OSSH und hat nur Unterstützung für das Protokoll 1.3. Gerüchten zufolge wurde OSSH in kommerzielle Produkte in Schweden eingebaut. Bis heute hat OSSH keine Unterstützung für Protokoll 2.

Die OpenBSD-Projektmitglieder wurden erst weniger als zwei Monate vor dem Erscheinen von OpenBSD-Release 2.6 auf Björns Arbeit aufmerksam. Wir wollten Unterstützung für ssh in unsere Version 2.6 integrieren, aber wir mussten sicherstellen, dass es einfach perfekt war. Daher haben wir uns sofort für einen Fork der OSSH-Version entschieden - also eine Abspaltung davon - und verfolgten eine ebenso gründliche und schnelle Entwicklung, wie es bei den OpenBSD-Sicherheitsuntersuchungen der Fall war. Als Ergebnis davon hatten zum Zeitpunkt der Veröffentlichung viele ssh-Quelltextdateien bereits RCS-Version 1.34, einige sogar schon 1.66. Die Entwicklung ist wirklich sehr schnell vorangegangen, da wir auch eine Frist einzuhalten hatten.

Die folgenden Teammitglieder haben teilgenommen:

Daher basiert OpenSSH auf diesen älteren Versionen von ssh 1.2.12, aber mit mehr beseitigten Fehlern und neueren zusätzlichen Funktionalitäten:

Das markierte die OpenSSH-Version 1.2.2, die mit OpenBSD 2.6 seit dem 1. Dezember 1999 ausgeliefert wurde. Zu dieser Zeit wurde die meiste OpenSSH-Entwicklung von Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt und Dug Song gemacht. Wir danken allen Leuten, die Fehler gefunden und gemeldet haben.

OpenSSH portieren

Fast sofort nachdem wir unsere Protokoll-1-Implementation veröffentlicht hatten, zeigten verschiedene Gruppen außerhalb von OpenBSD sehr, sehr großes Interesse daran. Damien Miller, Philip Hands und eine handvoll Anderer fingen an, OpenSSH auf Linux und verschiedene andere Unix-Betriebssysteme zu portieren. Von Anfang an unserer Bemühungen hatten wir das Gefühl, dass der originale Code von ssh zu kompliziert war, er hatte einfach zu viele Betriebssystemabhängigkeiten in sich. Unser Anspruch, komplett sicheren und absolut stabilen Code zu schreiben, vermeidet es, sich mit solcherlei Problemen herumzuschlagen. Um daher den gesamten Entwicklungsprozess für uns alle leichter zu machen, haben wir uns entschieden, die Kern- von der Portabilitätsentwicklung zu trennen. Dies hat sich bei uns als sehr gut herausgestellt (vergleiche doch mal die Anzahl der Codezeilen zwischen der Basisversion und den portablen Versionen).

SSH-Protokoll-2-Unterstützung

Nach der Veröffentlichung von OpenBSD 2.6 entschied Markus Friedl, dass die Unterstützung des SSH-2-Protokolls in Angriff genommen werden sollte. Indem er sich für Monate nur darauf beschränkte, konnte er OpenSSH schlank und rank halten und es zur gleichen Zeit in eine Software verwandeln, die sowohl das SSH-1-Protokoll als auch SSH-2-Protokoll benutzen kann. Diese Version - genannt OpenSSH 2.0 - wurde mit OpenBSD 2.7 am 15. Juni 2000 veröffentlicht. Die meisten Überprüfungen von Markus' Änderungen wurden von Niels Provos und Theo de Raadt gemacht. Bob Beck wird dafür gedankt, OpenSSL auf eine neuere Version gebracht zu haben.

SFTP-Unterstützung

Unterstützung für die Serverseite des SFTP-Unterprotokolls wurde von Markus Friedl geschrieben und in der Version 2.3.0 im November 2000 veröffentlicht. Bald danach startete Damien Miller mit der Arbeit an einem sftp-Client, der zum ersten Mal in Version 2.5.0 herausgebracht wurde.

SSH-Serverversionen scannen

Um die Überwachung der verwendeten SSH-Server zu erleichtern (z. B. in einem Firmennetzwerk) hat Niels Provos das scanssh-Tool geschrieben. scanssh prüft eine Liste von Adressen und Netzwerken auf die Verwendung von SSH-Servern und ihrer Versionsnummern hin. Es unterstützt die zufällige Auswahl von IP-Adressen innerhalb großer Netzwerkbereiche und ist einfach nützlich, um Statistiken über die Verwendung von SSH-Servern in einer Firma oder dem Internet an sich zu erhalten. Die Statistiken enthalten sowohl die unterstützten SSH-Protokolle als auch die benutzten Softwareversionen.

scanssh wird benutzt, um die Statistiken über die Verbreitung und Benutzung der SSH-Protokolle im Internet zu erhalten. Die Messungen erlauben Einblicke in die Verbreitung der verschiedenen SSH-Protokolle und der Marktdurchdringung bestimmter Serverversionen.


SSH: Letztlich sogar komplett frei.

SSH... Don't Tell Anyone It's Free
OpenSSH www@openbsd.org
$OpenBSD: history.html,v 1.40 2012/01/31 23:04:08 ajacoutot Exp $