OpenSSH ist eine vollständige Implementierung des SSH-Protokolls (Version 2) für sichere Remote-Anmeldung, Befehlsausführung und Dateiübertragung. Es umfasst einen Client- ssh
und einen Server- sshd
, die Dateiübertragungsdienstprogramme scp
und sftp
sowie Tools für die Schlüsselgenerierung ( ssh-keygen
), die Schlüsselspeicherung zur Laufzeit ( ssh-agent
) und eine Reihe unterstützender Programme.
Dies ist eine Portierung von OpenBSDs OpenSSH auf die meisten Unix-ähnlichen Betriebssysteme, einschließlich Linux, OS X und Cygwin. Portable OpenSSH füllt OpenBSD-APIs mehrfach aus, die anderswo nicht verfügbar sind, fügt SSD-Sandboxing für mehr Betriebssysteme hinzu und bietet Unterstützung für betriebssystemnative Authentifizierung und Prüfung (z. B. mithilfe von PAM).
Die offizielle Dokumentation für OpenSSH sind die Manpages für jedes Tool:
ssh(1)
sshd(8)
ssh-keygen(1)
ssh-agent(1)
scp(1)
SFTP(1)
ssh-keyscan(8)
SFTP-Server(8)
Stabile Release-Tarballs sind auf einer Reihe von Download-Mirror-Servern verfügbar. Wir empfehlen den meisten Benutzern die Verwendung einer stabilen Version. Einzelheiten zu den jüngsten Änderungen und möglichen Inkompatibilitäten finden Sie in den Versionshinweisen.
Portable OpenSSH wird mit autoconf und make erstellt. Es erfordert einen funktionierenden C-Compiler, eine Standardbibliothek und Header.
libcrypto
von LibreSSL oder OpenSSL kann ebenfalls verwendet werden. OpenSSH kann ohne beides erstellt werden, aber die resultierenden Binärdateien verfügen nur über eine Teilmenge der normalerweise verfügbaren kryptografischen Algorithmen.
zlib ist optional; Ohne sie wird die Transportkomprimierung nicht unterstützt.
Die Unterstützung für FIDO-Sicherheitstoken benötigt libfido2 und seine Abhängigkeiten und wird automatisch aktiviert, wenn sie gefunden werden.
Darüber hinaus erfordern bestimmte Plattformen und Build-Time-Optionen möglicherweise zusätzliche Abhängigkeiten. Einzelheiten zu Ihrer Plattform finden Sie in README.platform.
Release-Tarballs und Release-Zweige in Git enthalten eine vorgefertigte Kopie des configure
und können erstellt werden mit:
tar zxvf openssh-X.YpZ.tar.gz cd openssh ./configure # [options] make && make tests
Weitere Konfigurationsoptionen finden Sie im Abschnitt „Anpassung zur Build-Zeit“ weiter unten. Wenn Sie vorhaben, OpenSSH auf Ihrem System zu installieren, möchten Sie normalerweise Zielpfade angeben.
Wenn Sie aus dem Git-Master-Zweig erstellen, muss Autoconf installiert sein, um das configure
zu erstellen. Mit den folgenden Befehlen wird portables OpenSSH aus Git ausgecheckt und erstellt:
git clone https://github.com/openssh/openssh-portable # or https://anongit.mindrot.org/openssh.git cd openssh-portable autoreconf ./configure make && make tests
Es stehen viele Optionen zur Anpassung der Build-Zeit zur Verfügung. Alle Autoconf-Zielpfad-Flags (z. B. --prefix
) werden unterstützt (und sind normalerweise erforderlich, wenn Sie OpenSSH installieren möchten).
Für eine vollständige Liste der verfügbaren Flags führen Sie ./configure --help
aus. Einige der am häufigsten verwendeten Flags werden jedoch weiter unten beschrieben. Für einige dieser Flags müssen zusätzliche Bibliotheken und/oder Header installiert werden.
Flagge | Bedeutung |
---|---|
--with-pam | Aktivieren Sie die PAM-Unterstützung. OpenPAM, Linux PAM und Solaris PAM werden unterstützt. |
--with-libedit | Aktivieren Sie die libedit-Unterstützung für SFTP. |
--with-kerberos5 | Aktivieren Sie die Kerberos/GSSAPI-Unterstützung. Es werden sowohl Heimdal- als auch MIT-Kerberos-Implementierungen unterstützt. |
--with-selinux | Aktivieren Sie die SELinux-Unterstützung. |
Die Entwicklung von portablem OpenSSH wird auf der Mailingliste openssh-unix-dev (Archive Mirror) besprochen. Fehler und Funktionsanfragen werden auf unserem Bugzilla verfolgt.
Nicht sicherheitsrelevante Fehler können den Entwicklern über Bugzilla oder über die oben stehende Mailingliste gemeldet werden. Sicherheitslücken sollten an [email protected] gemeldet werden.