Login
Newsletter
Werbung

Do, 15. Juni 2017, 15:00

FreeBSD 4.11 im Jahre 2017: Gruß aus alten Tagen

SSH-Login mittels -oHostKeyAlgorithms=+ssh-dss

Michael Reim

SSH-Login mittels -oHostKeyAlgorithms=+ssh-dss

Ersetzen eines toten Baumes

Ich bevorzuge es, mich mit der 4.11-Kiste von einem anderen Rechner aus über SSH zu verbinden - es ist einfach viel bequemer, meinen gewohnten Terminalemulator zur Hand zu haben und auch Dinge markieren sowie kopieren und einfügen zu können. Weiter geht's also von meiner Arbeitsstation aus:

% ssh kraileth@192.168.1.5
Unable to negotiate with 192.168.1.5 port 22: no matching host key type found. Their offer: ssh-dss

Autsch! Ich kann mich nichtmal mit dem System über SSH einloggen, weil dessen OpenSSH-Version so alt ist, dass sie nur ssh-dss-Schlüssel unterstützt, die schon seit einiger Zeit als veraltet gelten und nicht mehr benutzt werden sollten. In OpenSSH ab 7.0 ist deren Unterstützung standardmäßig deaktiviert. Um uns in diesem Fall verbinden zu können, müssen wir also unserem SSH-Client sagen, dass er für diese Verbindung ssh-dss akzeptieren soll:

% ssh kraileth@192.168.1.5 -oHostKeyAlgorithms=+ssh-dss

Gut, da wären wir. Aber was jetzt? Den Ports-Baum von FreeBSD können wir nicht benutzen, aber ich bevorzuge definitiv eine Art Paketverwaltung gegenüber dem händischen Bauen aus den Quellen und Installation mit make install. Was tun? Zum Glück gibt es tatsächlich eine recht gute Lösung für dieses Problem. Darf ich vorstellen? Pkgsrc!

Pkgsrc ist im Prinzip NetBSDs Fork des FreeBSD-Ports-Baumes. Als waschechtes NetBSD-Projekt ist es jedoch nicht auf dessen primäres Betriebssystem beschränkt. Es ist eine wirklich portable Möglichkeit, um Programme zu bauen und zu verwalten - übrigens auch unter Linux, Minix, usw.! Es gibt aber ein Problem: Wenn man die aktuellste Pkgsrc-Version herunterlädt und entpackt, schlägt der Bootstrapping-Prozess fehl. Ganz offensichtlich wird FreeBSD 4.11 nicht länger unterstützt - was wenig überraschend ist. Wie ich durch Ausprobieren festgestellt habe, scheint Pkgsrc-2009Q4 die letzte Version zu sein, bei welcher der Bootstrap gelingt. Aber das ist doch schon mal was!

Leider gibt es ein weiteres Problem: Pkgsrc scheint keine Tarballs von so alten Versionen mehr bereitzuhalten und ich habe auch keine davon im Netz gefunden. Pkgsrc nutzt allerdings CVS. Damit ist es natürlich möglich, einen älteren Stand auszuchecken. Und FreeBSD 4.11 hat CVS als Teil des Basissystems an Bord. Leider funktioniert CVS über SSH - und NetBSDs CVS-Server akzeptiert kein ssh-dss (was eine völlig logische Entscheidung ist)! Da wir keine Kontrolle über diesen Server haben, gibt es auch keine Möglichkeit, einfach einen Parameter zu setzen oder es irgendwie anders zu akzeptieren. Keine Chance!

Zeit, CVS auf meiner doch etwas moderneren FreeBSD 11.0-Maschine zu installieren, dort den Checkout vorzunehmen, alles in einen Tarball zu stopfen und dann über scp rüberzukopieren! Was wir wirklich wollen, ist allerdings Version 2007Q2, da wir einige Dinge benötigen werden, die in späteren Versionen nicht mehr unter FreeBSD 4.11 lauffähig sind. Oh, und falls Sie mit CVS nicht vertraut sind: Keine Sorge. Wenn man nicht gerade z.B. OpenBSD-Entwickler ist, ist es heute eigentlich nicht besonders tragisch, wenn man nicht weiß, was »Module« oder »Tags« sind. Einfach die Befehle kopieren und die Sache sollte klappen:

Dies muss auf einem neueren System ausgeführt werden, nicht auf der 4.11-Kiste!

% sudo pkg install cvs
% cvs -danoncvs@anoncvs.netbsd.org:/cvsroot get -rpkgsrc-2007Q2 -P pkgsrc
% tar cvjf pkgsrc2007Q2.tbz2 pkgsrc/*
% scp pkgsrc2007Q2.tbz2 kraileth@192.168.1.5:/usr/home/kraileth

Zurück zu vierelf. Der nächste Schritt ist, ein paar Verzeichnisse anzulegen und den Pkgsrc-Tarball auszupacken:

# mkdir -p /usr/local/temp /usr/pkgsrc
# cd /usr/pkgsrc
# mv /usr/home/kraileth/pkgsrc2007Q2.tbz2 .
# tar xvjf pkgsrc2007Q2
# rm pkgsrc2007Q2.tbz2
# mv pkgsrc 07

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung