OpenSSH
# OpenSSH

OpenSSH ist ein Programmpaket zur Dateiübertragung. Dazu nutzt es Secure Shell (SSH) inklusive SSH File Transfer Protocol und beinhaltet dafür Clients, Dienstprogramme und einen Server.

## Geschichte

OpenSSH entstand 1999 als Abspaltung einer älteren Implementierung zum SSH-Protokoll von Tatu Ylönen, als diese noch freie Software war. Programmierer von OpenBSD vereinfachten dieses Derivat von Björn Grönvall, brachten es auf den aktuellen Stand des Protokolls, und veröffentlichten ihre erste eigene Version als OpenSSH 1.2.2.

Bereits zur Premiere als Bestandteil von OpenBSD gab es OpenSSH auch für FreeBSD und Linux. Inzwischen arbeitet OpenSSH auf fast allem, was auch nur im entferntesten Unix ist, einschließlich Cygwin.

Unternehmen wie IBM und Hewlett-Packard bieten OpenSSH für ihre Betriebssysteme wie AIX und HP-UX mit Erweiterungen an, und auch Microsoft bietet OpenSSH für Windows Server 2019 an.

## Lizenz

Die Lizenzierung von OpenSSH ist unübersichtlich, weil mehrere Lizenzen übernommen wurden, was letztlich der ursprünglichen BSD-Lizenz gleichkommt. Bei vielen Funktionen zur Verschlüsselung greift OpenSSH auf LibreSSL zurück.

## Bestandteile

OpenSSH beinhaltet:

* ssh (als Ersatz für rsh, rlogin und telnet) ssh tero@example.com
* scp (als Ersatz für rcp) scp tero@example.com:~/somefile .
* sftp (als Ersatz für ftp) sftp tero@example.com
* sshd (der SSH-Daemon) beinhaltet scp- und sftp-Server sshd
* ssh-keygen (Authentifizierungsschlüssel-Generator, -Management und -Konvertierung) ssh-keygen
* ssh-keyscan (Erfassen von SSH Public Keys) ssh-keyscan
* ssh-agent (Hält den privaten Schlüssel im Arbeitsspeicher) eval `ssh-agent`
* ssh-add (Lädt einen privaten Schlüssel in den ssh-agent) ssh-add ~/.ssh/id_rsa

## Zusätzliche Funktionen

Neben der Hauptaufgabe des Fernzugriffs bietet OpenSSH zusätzliche Funktionen wie Portweiterleitung an. Mit Portweiterleitung kann der Client einen lokalen Port öffnen und TCP-Verkehr über den Server an ein entferntes Ziel weiterleiten. Dies kann z. B. genutzt werden, um mittels OpenSSH auf geschützte Ressourcen innerhalb eines Netzwerks zuzugreifen, ohne ein VPN aufzubauen. Die Portweiterleitung kann auch in umgekehrter Richtung erfolgen, wobei der Serverzugriff auf die Umgebung des Clients erhält.

## Entwicklung

Die Entwicklung von OpenSSH ist in zwei Teams aufgeteilt. Das erste Team entwickelt nur für OpenBSD, um dessen Code möglichst einfach und sicher zu halten. Das zweite Team ergänzt OpenSSH zu einer Variante mit dem Buchstaben p in der Versionbezeichnung, die auf anderen Implementierungen von Unix und unixoiden Systemen einsetzbar ist.

