- Vorbedingungen
Du brauchst funktionierende Installationen von
Zlib und
OpenSSL (Version 0.9.5a oder höher).
Redhat Linux RPMS von OpenSSL sind
auch erhältlich.
OpenSSH kann
Pluggable Authentication
Modules (PAM) benutzen, falls dein System sie unterstützt. PAM ist unter Redhat
und Debian Linux der Standard, genauso unter Solaris.
Wenn du den 'GNOME Passphrase requester' erzeugen willst, benötigst du die
GNOME libraries und headers.
Alternativ dazu hat Jim Knoble einen
exzellenten X11 Passphrase Requester geschrieben. Dieser wird aber seperat gepflegt.
Wenn du planst OpenSSH auf einem Unix einzusetzen, dem ein Kernel-Zufallszahlengenerator
fehlt (/dev/urandom), und den eingebauten Zufälöigkeitscode nicht benutzen willst,
möchstest du vielleicht den
Entropy Gathering Daemon installieren.
Du musst dann auch die --with-egd-pool-Option beim ./configure mit angeben.
OpenSSH wurde nur mit
GNU make getestet. Es könnte auch mit anderen
'make' Programmen arbeiten, aber diesbezüglich bist du auf dich gestellt.
- Erzeugen / Installation
Um OpenSSH mit den Standardoptionen zu installieren:
./configure
make
make install
Das installiert die OpenSSH binaries unter /usr/local/bin,
Konfigurationsdateien unter /usr/local/etc, den Server unter
/usr/local/sbin, etc. Um einen anderen Installtionspräfix zu wählen,
benutze die --prefix Option beim 'configure' :
./configure --prefix=/opt
make
make install
Installiert OpenSSH in /opt/{bin,etc,lib,sbin}. Du kannst auch andere
Pfade angeben, zum Beispiel:
./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install
Das wird die Binaries in /opt/{bin,lib,sbin} und
die Konfigurationsdateien in /etc/ssh ablegen.
Wenn du PAM benutzt, wirst du eine PAM Kontrolldatei per Hand installieren müssen und
zwar als /etc/pam.d/sshd (oder wo auch immer dein System
sie gerne hätte). Eine Standard PAM Konfiguration ist als
contrib/sshd.pam.generic beigefügt, du solltest sie deinem Bedarf anpassen, bevor du sie
benutzt. Wenn du eine aktuelle Version von Redhat Linux benutzt, befindet sich ein etwas nützlicheres
config file in contrib/redhat/sshd.pam.
Es gibt noch ein paar andere Optionen für das 'configure' script:
- --with-rsh=PATH
-
Specifiziert den Pfad zu deinem rsh Programm. Normalerweise wird ./configure
den Standard-Pfad $PATH nach rsh durchsuchen. Du musst diese Option
wahrscheinlich angeben, wenn rsh nicht in deinem Standard-Pfad enthalten ist.
- --without-pam
-
Schaltet die PAM Unterstützung ab. PAM wird automatisch gesucht und abgeschaltet, wenn
es gefunden wird.
- --with-random=/some/file
-
Gibt eine alternative Quelle von Zufallszahlen an (standardmässig
/dev/urandom). Wenn du nicht absolut sicher bist, was du tust, lass lieber
die Finger davon.
- --with-egd-pool=/some/file
-
Schaltet die 'Entropy Gathering Daemon' Unterstützung an und spzifiziert einen EGD pool
socket. Du möchtest das vielleicht benutzen, falls dein Unix kein
/dev/urandom Device unterstützt (oder etwas ähnliches). Das File Argument bezieht sich
auf die EGD pool Datei, nicht das EGD Programm selbst. Bitte lies die EGD
Dokumentation.
- --with-lastlog=FILE
-
Spezifiziert den Ort der lastlog Datei.
./configure durchsucht ein paar
ein paar Standardorte nach lastlog, aber kann es natürlich nicht finden, wenn es
in einem anderen Verzeichnis installiert ist.
- --without-lastlog
-
Schaltet die lastlog Unterstützung komplett ab.
- --with-kerberos4=PATH
-
Schaltet die Kerberos IV Unterstützung ein. Du musst die Kerberos
libraries und header files installiert haben, damit es funktioniert. Benutze das
optionale PATH Argument um den Ort deiner Kerberos Installation anzugeben.
- --with-afs=PATH
-
Schaltet die AFS Unterstützung ein. Du musst die Kerberos IV und die
AFS libraries und header Dateien installiert haben, damit es funktioniert.
Benutze das optionale PATH Argument um den Ort deiner AFS Installation anzugeben.
AFS benötigt eingeschaltete Kerberos Unterstützung.
- --with-skey
-
Schaltet die S/Key Einmalpasswort-Unterstützung ein. Du musst die S/Key
libraries und header Files installiert haben, damit es funktioniert.
- --with-tcp-wrappers
-
Schaltet die TCP Wrapper Unterstüzung (/etc/hosts.allow|deny) ein. Du brauchst
installierte libwrap.a und tcpd.h .
- --with-md5-passwords
-
Schaltet die Unterstützung für MD5 Passwörter ein. Benutze dies hier, wenn dein Betriebsystem
MD5 Passwörter ohne PAM benutzt.
- --with-utmpx
-
Unterstüzung für utmpx, was auf einigen Plattformen automatisch eingeschaltet ist.
- --without-shadow
-
Schaltet shadow password Unterstüzung ab.
- --with-ipaddr-display
-
Erzwingt die Benutzung von numerischen IP address in der $DISPLAY
Umgebungsvariable. Einige defekte Systeme brauchen das.
- --with-default-path=PATH
-
Erlaubt den Standardpfad $PATH für Sessions zu setzen, die vom
sshd gestartet werden. Dieser ersetzt den Standardpfad vollkommen.
Benutze das, wenn der Server 'scp' nicht finden kann.
- --with-pid-dir=PATH
-
Gibt das Verzeichnis an, in dem die ssh.pid Datei erzeugt wird.
- --with-xauth=PATH
-
Gibt den Pfad zum 'xauth'-binary an.
- --with-ipv4-default
-
Weist OpenSSH an, IPv4 für neue Verbindungen zu benutzen. Normalerweise
wird OpenSSH versuchen sowohl IPv6 als auch IPv4 Addressen zu finden.
Auf Linux/glibc-2.1.2 verursacht das lange Pausen in der Namensauflösung.
Wenn diese Option angegeben ist, kannst du trotzdem mit Hilfe der Option
-6 IPv6 Adressen erreichen.
- --with-ssl-dir=DIR
-
Gibt an, wo die OpenSSL libraries installiert sind.
- --with-4in6
-
Prüfe, ob IPv4 in IPv6 gemappte Addressen vorhanden sind und konvertiere sie in
richtige (AF_INET) IPv4 Addressen. Umgeht IPv6 Schwierigkeiten unter Linux.
Wenn du spezielle Optionen an Compiler oder Linker übergeben willst, kannst
du diese als Umgebungsvariable definieren, bevor du
./configure ausführst. Zum Beispiel:
CFLAGS="-O -m486" LFLAGS="-s" LIBS="-lrubbish" LD="/usr/foo/ld" ./configure
- Konfiguration
Die Laufzeitkonfigurationsdateien sind unter
${prefix}/etc installiert, oder wo du sie auch mit Hilfe der Option --sysconfdir
hininstalliert hast (/usr/local/etc normalerweise).
Die Standardkonfiguration sollte sofort benutzbar sein, trotzdem solltest du sie überprüfen,
damit sie auch auf deine Gegebenheiten passt.
Um einen host key zu generieren, benutze "make host-key". Alternativ dazu kannst du das per Hand
erledigen:
/usr/bin/ssh-keygen -b 1024 -f /etc/ssh/ssh_host_key -N ''
/usr/bin/ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key -N ''
Ersetze /etc/ssh mit dem korrekten Pfad zum Konfigurationsverzeichnis.
(${prefix}/etc oder was auch immer du per
--sysconfdir Option während der Installation angegeben hast.
Wenn du OpenSSH mit EGD Unterstützung konfigueriert hast, stelle sicher, dass EGD läuft
und schon ein bisschen Entropie gesammelt hat.
Mehr Information über die Konfiguration gibt es in manual pages
für sshd, ssh und ssh-agent.