SSH - REMOTE HOST IDENTIFICATION HAS CHANGED

Jedes Mal, wenn ich mir ein neues Linux-System einrichte, muss ich erst nochmal schnell Googlen oder die Manpage wälzen; daher notiere ich es mir hier jetzt endlich mal:

Es gibt ein Sicherheitsfeature bei openSSH, welches einen warnt wenn man sich zu einem Host/einer IP verbinden möchte und sich die ID des Zieles seit dem letzten Mal verändert hat. Das macht zwar durchaus Sinn und ich finde das generell eine gute Sache. Aber es kann wirklich sehr nerven, besonders wenn man mit DHCP arbeitet und die Zielrechner dauernd Ihre IP durchtauschen, man mit virtuellen Maschinen arbeitet und diese nur kurz benutzt werden oder häufig per SSH auf Live-CD-Systeme konnektiert.

Normalerweise muss man die entsprechende Zeile in der Datei ~/.ssh/known_hosts die angemeckerte Zeile löschen; z.B. bei:

$ ssh user@192.168.1.12
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
39:b3:72:04:53:f7:17:eb:aa:8c:ed:70:db:77:8b:e9.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:3
RSA host key for 192.168.1.12 has changed and you have requested strict checking.
Host key verification failed.$

müsste man die Zeile 3 entfernen.

Hierzu muss man etwas wie

sed -i 3d ~/.ssh/known_hosts

losjagen oder die Datei in einem Editor von Hand bereinigen. Wie schon gesagt: Auf Dauer sehr nervig!

Wenn einem das nur vereinzelt passiert, kann man sich mit Kommandozeilenoptionen helfen:

ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no user@192.168.1.12

ist jedoch schon eine recht sportliche Aufgabe sich das a) zu merken und b) jedes Mal wegzutippen.

Wem das permanent passiert, kann dieses Verhalten dauerhaft einstellen. Und zwar sowohl global wie auch userbasiert. In beiden Fällen müssen die beiden o.g. Optionen in die passende Config-Datei eingetragen werden:

UserKnownHostsFile=/dev/null  
StrictHostKeyChecking=no

Um diese Einstellung global zu setzen (nicht empfohlen), trägt man diese Optionen in die Datei "/etc/ssh/ssh_config" ein.

Um diese Einstellung nur für einen bestimmten User zu setzen, trägt man diese Optionen in die Datei "~/.ssh/config" ein.

Das ganze hebelt natürlich den als Sicherheitsmaßnahme gegen "Man-in-the-middle" - Attacken gemeinten Schutz vor diesem Angriffstyp aus. Um das ganze wenigstens etwas sicherer zu machen, kann man auch nur einzelne Hosts und Hostbereiche derart von dieser Regel ausnehmen. Die Beispielhafte Syntax dazu lautet dann:

Host 192.168.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Möchte man dieses immer und für alle Verbindungen deaktivieren, lässt man die "Host" - Zeile einfach weg.

Aber Achtung: Bitte nur anwenden wenn Ihr wisst was Ihr tut! Das ganze hebelt, wie gesagt, einen sinnvollen Schutz des SSH Systems aus.

Teilen per: TwitterEmail


ownCloud Fehler unter KDE: "ownCloud wird für eine funktionierende Taskleiste benötigt"

Auf einem meiner Rechner läuft ein kubuntu 15.04. In dessen Repo befindet sich die Version 1.7.0\~beta1+really1.6.4+dfsg-1 des Paketes owncloud-client. Installiert man dieses, bekommt man unter KDE Plasma beim Anmelden folgende Fehlermeldung angezeigt:

"ownCloud wird für eine funktionierende Taskleiste benötigt. Falls Sie XFCE einsetzen, dann folgen Sie bitte diesen Anweisungen. Anderenfalls installieren Sie bitte eine Taskleisten-Anwendung wie 'trayer' und versuchen Sie es erneut."

[caption id="attachment_1906" align="aligncenter" width="525"]Fehlermeldung der Repo-Version von owncloud unter Ubuntu
15.04: "ownCloud wird für eine funktionierende Taskleiste
benötigt."{.size-full .wp-image-1906 width="525" height="238"} Fehlermeldung der Repo-Version von owncloud unter Ubuntu 15.04: "ownCloud wird für eine funktionierende Taskleiste benötigt."[/caption]

Hierbei handelt es sich offenbar um einen Übersetzungsfehler, welcher in aktuellen Versionen bereits behoben ist: https://github.com/owncloud/client/issues/2180

Dennoch: Auch mit einer korrekten Fehlermeldung bleibt es dabei: Diese Version spuckt einen Fehler aus.

Abhilfe kann man schaffen, indem man den Anweisungen auf der ownCloud-Homepage folgt um den aktuellen Desktopclient für Ubuntu zu installieren. Ein laufender ownCloud Client sollte zuvor beendet werden. Das Paket owncloud-client muss zuvor nicht deinstalliert werden, da es durch die folgenden Schritte aktualisiert wird:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/xUbuntu_15.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"
wget -O - http://download.opensuse.org/repositories/isv:ownCloud:desktop/xUbuntu_15.04/Release.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install owncloud-client

Anschließend befindet sich die aktuelle Version des ownCloud Clients (derzeit 1.8.3) auf dem System und die Fehlermeldung sollte der Vergangenheit angehören.

Teilen per: TwitterEmail


Kurztipp: Galileo Buch "Shell Programmierung" kostenlos als OpenBook

Ich habe hier das Buch "Shell-Programmierung" (ISBN: 978-3-8362-1157-4) von Jürgen Wolf im Original im Hardcover liegen; ein rund 800 Seiten starker Trümmer randvoll mit praktischen Tipps, Anwendungsbeispielen und nachvollziehbaren Erklärungen rund um die Programmierung in den verbreitetsten Linux-Shells. Das Buch ist super! Ich schaue regelmäßig rein und finde nach wie vor immer wieder etwas neues. Besonders als Referenz finde ich es einsame spitze!

Da sich nun leider nach mehreren Jahren der regelmäßigen Benutzung die Bindung mancher Seiten in den wohlverdienten Ruhestand verabschieden, wollte ich eben mal schauen ob man das nicht zufällig als digitale Kopie erstehen kann.
Tatsächlich: Kann man! Und zwar inzwischen kostenlos als Galileo OpenBook!

Ich kann nur jedem an diesem Thema interessiertem empfehlen: Downloaden!

Teilen per: TwitterEmail


LPIC-1 : Mission accomplished!

Jaaa - was soll ich groß schreiben? Was lange währt wird endlich gut vielleicht :)

[caption id="attachment_1074" align="alignright" width="264" caption="LPIC-1 Logo"]LPIC-1
Logo{.size-full .wp-image-1074 width="264" height="264"}[/caption]

Nachdem mein Kumpel Alex vor inzwischen fast zwei Jahren mit dem LPIC-1 Zertifikat vorgelegt hat, wollte ich eigentlich innerhalb weniger Wochen nachziehen. Nur kam dann eines zum anderen. Erst zog die Firma um, dann hatte ich alle Hände voll zu tun mit meiner damals neuen Position als Abteilungsleiter mit Personalverantwortung, dann ... ach - blah, blah, blah. Das Ende vom Lied ist: Ich bin erst am gestrigen Mittwoch endlich dazu gekommen meine LPIC-1 Prüfung bei "The Campus" in Düsseldorf in der Gladbecker Str 1  zu absolvieren. Ich habe direkt beide Prüfungen hintereinander durchgezogen.

Was soll ich lange drum herum reden: Bestanden! :)

Ich habe hierzu mit dreien abzurechnen. Fangen wir mit "The Campus" an.
Ich habe mich am 9.11.2011 zu beiden Prüfungen am 23.11.2011 um 10.30 und 12:00 Uhr angemeldet. Am 22.11. um 17:45 Uhr (also: Am Abend zuvor) sitze ich mit meinem Chef im Meetingraum in der Firma, da kommt eine Kollegin rein und meint "Es hat eine Frau X von The Campus angerufen und meinte die Prüfung morgen verschiebt sich auf 12 Uhr.". Wir waren eh gerade fertig also rufe ich um 18:00 Uhr, 15 Minuten später, zurück um die Dame zu fragen ob sie das richtig findet einem am Abend zuvor durch einen dritten ausrichten zu lassen das sich die Prüfung verschiebt. Was ist denn wenn ich dann bereits Termine habe? Zudem habe ich meine Handynummer und E-Mailadresse bei der Registrierung angegeben, da kann man mich doch wenigstens versuchen darüber zu erreichen ehe man "Stille Post" spielt.
Aber scheinbar hat sie unmittelbar nach diesem Anruf das Gebäude verlassen - jedenfalls war sie nicht mehr im Hause (Aussage der Kollegin, die ich stattdessen erreicht habe).
Angekommen musste ich erstmal suchen, ob ich richtig bin: Die untere Etage des scheinbaren Neubaus steht leer. Schilder gibt es nur sehr unzureichend.
Ich bin also um 12 Uhr da. Leider habe ich eine Wartezeit bis etwa 12:30 Uhr, da sich die Dame trotz der Verschiebung auf 12 Uhr um knapp eine halbe Stunde verspätet.
Als wir endlich anfangen können, werde ich in einen Raum geführt, in dem 8 völlig veraltete PCs stehen. Die Dame schaltet mir die Prüfung auf und - verlässt den Raum! Alle Prüflinge sind völlig unbeaufsichtigt. Spicken wäre nun Tür und Tor geöffnet. Ebenso wird man auf den ausgehändigten Regeln darauf hingewiesen, das man sich ausschließlich durch heben einer Hand bemerkbar machen soll, wenn man Fragen hat. Der Prüfer kommt dann angeblich sofort und hilft. .... wie denn, wenn garkeiner im Raum ist??
Naja. Nachdem ich die erste Prüfung bestanden hatte, habe ich eine kurze Pause gemacht und bin dann die zweite angegangen. Während dieser Prüfung wurde in den oberen Etagen pausenlos gehämmert. Wirklich konzentrieren: Fehlanzeige. Ich bin nach absolvierter Prüfung zu den Damen gegangen und habe gesagt das sowas alles andere als geeignete Prüfungsbedingungen sind. Reaktion: "Ja, ich war auch eben schonmal gucken ...". Super!

Also: Nichts gegen die Damen an sich: Die beiden waren sehr nett! Aber es ärgert mich, das man viel Geld dafür bezahlt, das man sich da eine Stunde lang an einen PC setzen darf, dabei weder Beaufsichtigt noch betreut wird und das man einen Tag vor der Prüfung derart mit Orga-Scheiss abgelenkt wird. Zumal die auf der Anmeldung ihrerseits ein richtiges Fass aufmachen: "Wer mehr als 15 Minuten später erscheint darf nicht mehr teilnehmen!", "Armbanduhr, Portemonaie und Handy müssen abgelegt werden!", "Während der Prüfung: Absolute Ruhe!" , und dann bietet man einem solche Bedingungen an.

Naja ...
Morgen rechne ich mit dem Linux Professional Institute ab! Stay tuned! :D

Teilen per: TwitterEmail


Fehlende Libraries bei VMware Server Installation unter Ubuntu auf einem x86_64 System

Hallo zusammen; kurzer HowTo-Flash:

Ich hatte eben Probleme den VMware Server unter einem Ubuntu x86_64 System zu installieren. Meine Bildschirmausgabe sah wie folgt aus:

The correct version of one or more libraries needed to run VMware Server may be missing. This is the output of ldd /usr/bin/vmware:
linux-gate.so.1 => (0xffffe000)
libm.so.6 => /lib32/libm.so.6 (0xf7f93000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7f8f000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f76000)
libX11.so.6 => not found
libXtst.so.6 => not found
libXext.so.6 => not found
libXt.so.6 => not found
libICE.so.6 => not found
libSM.so.6 => not found
libXrender.so.1 => not found
libz.so.1 => /usr/lib32/libz.so.1 (0xf7f60000)
libc.so.6 => /lib32/libc.so.6 (0xf7e16000)
/lib/ld-linux.so.2 (0xf7fc6000)

This program cannot tell for sure, but you may need to upgrade libc5 to glibc
before you can run VMware Server.

Auf dieser Seite habe ich die Lösung gefunden:

Man muss das Paket "ia32-libs" nachinstallieren. Nun klappt alles :)

Teilen per: TwitterEmail


HTTP_HOST mit mod_rewrite verändern

Ich möchte heute einen mod_rewrite - Move veröffentlichen, den ich so im Internet (als ich ihn selber brauchte ... *gnaaahr* .. ;) ) nicht gefunden habe.

Erstmal: Worum geht's?
Ich hatte auf der Arbeit folgende Aufgabe: Einer unserer Kunden hat mehrere Domains. Unter jeder dieser Domains gibt es einen DNS-Eintrag für jeden Server des Kunden. Zum Beispiel: server1.domain1.de , server1.domain2.de , ... etc. In  Einträgen mit gleichem Servernamen (server1) ist immer dieselbe IP hinterlegt.

Nun tauchten teilweise doppelte Einträge bei Suchmaschinen auf, wodurch das Ranking negativ beeinflusst wird. Es gab zum Beispiel diese beiden (fiktiven) Hits auf denselben Suchausdruck: http://server1.domain1.de/gartenzubehoer.html und http://server1.domain2.de/gartenzubehoer.html. Das ist natürlich eher nicht erwünscht.

Die Aufgabe bestand nun also aus 3 Punkten:

  1. Es sollen alle Anfragen von allen Domains auf eine einzige Hauptdomain mit einem RedirectPermanent (301) umgeleitet werden.
  2. Es muss erreicht werden, das der Subdomain - Teil (server1) mit übernommen wird und der Hauptdomain vorangestellt wird.
  3. Der URI-Teil nach dem Hostteil (/gartenzubehoer.html) muss in der neuen URI auch wieder angehangen werden.

Nun bietet mod_rewrite es in RewriteRule - Anweisung aber irgendwie nur an, den Teil nach dem Hostteil zu verändern/zu übernehmen. Somit hätte ich nur die Möglichkeit auf einen einzigen Server umzuleiten.
Es gibt auch die RewriteCond - Anweisung. Hiermit kann man auch die Variable HTTP_HOST auf bestimmte Inhalte hin überprüfen, jedoch nicht verändern.

Wie bekommt man es nun hin die Anfrage wie beschrieben zu manipulieren?

Lösung: Man kann mit einem regulären Ausdruck Werte aus der RewriteCond - Anweisung in der RewriteRule - Anweisung wiederverwerten!
Es folgt das Beispiel für die beschriebene Anforderung:

RewriteEngine On
RewriteCond %{HTTP_HOST} \^(.*)\.domain.\.de\$ [NC]
RewriteRule \^(.*)\$ http://%1\.domain1\.de\$1 [R=301,L]

Das wars! Das fiese: RewriteCond Speichert seine Pattern in Variablen, die mit %N angesprochen werden und RewriteRule in Variablen, die mit \$N angesprochen werden! Mit diesem Wissen ist es eigentlich schon wieder ein Kinderspiel, wie man sieht.

Ich gehe die Zeilen schnell (!) durch:

Zeile 1: Aktiviert nur das mod_rewrite .

Zeile 2: RewriteCond ist eigentlich dazu da, um einen Request vor der Umformung zunächst mal durch verschiedene Prüfungen gehen zu lassen. Nur wenn alle RewriteCond Tests erfolgreich waren, wird die Manipulation durch RewriteRule vorgenommen. Hier dient uns die Anweisung jedoch dazu den HTTP_HOST auszulesen und in der Variable %1 zu speichern. Dieses wird durch die () erreicht (Siehe: Reguläre Ausdrücke). Die Option [NC] steht für "not casesensitive" und bewirkt, das es egal ist, ob jemand eine beliebige Kombination aus Groß- und Kleinschreibung in der URL verwendet.

Zeile 3: RewriteRule definiert nun wie genau die Anfrage manipuliert werden soll. der zweite Teil nimmt sich einfach alle Zeichen, die hinter dem Hostteil kommen und speichert sie in der Variablen \$1. Anschließend wird das Ziel definiert. Hier werden beide Variablen, %1 und \$1, wieder verwertet. Die Optionen [R=301,L] besagen nun, das es sich um eine Umleitung (Redirect) des Types 301 (permanent) handelt, und das dieses die letzte Regel sein soll, die angewendet wird (L).

Das ganze hat mich über 2 Stunden gekostet. Hab offenbar immer wieder übersehen, das es sich um zwei unterschiedliche Variablenregister bei %N und \$N handelt.
Ich hoffe das dieses jemandem diese Zeit spart ;)

Wie immer freue ich mich sehr über ein kurzes Feedback in Form eines Kommentars :)

Teilen per: TwitterEmail


Syntax Highlighting im vim aktivieren

Nur ein schneller Tipp für zwischendurch.

Unter Debian und Debian-artigen Linux Distributionen ist das Syntax Highlighting standardmäßig deaktiviert. Ist auch gut so für ein Serverbetriebssystem, da manche KVM Displays auf Farben nicht so gut zu sprechen sind.
Meistens ist dieses jedoch ein Feature, das einen ungemein bei der Arbeit unterstützt.

In diesem Blog, der leider nur von registrierten Usern Kommentare akzeptiert ( was mir aber zu umständlich ist ;) ), habe ich schnell gefunden, wie man es aktiviert:

Einfach in die Datei "/etc/vim/vimrc" die Option "syntax on" setzen. Bei Debian und Ubuntu existiert der Eintrag bereits, ist jedoch durch doppelte Anführungszeichen auskommentiert.
Das war's schon! :) Beim nächsten Start von vim ist das Syntax Highlighting aktiviert.

Achtung: Auf diesem Wege gillt es global für alle User!
Userspezifisch kann man dasselbe erreichen, indem man stattdessen die Datei ".vimrc" im jeweiligen Home-Dir des Users wie oben beschrieben editiert.

Teilen per: TwitterEmail


fastlogres gefunden!

Es ist echt unglaublich!
Man sucht stundenlang, und findet NICHTS!

Dann schreibt man irgend eine Mail/ICQ Nachricht, oder einen Blogeintrag und kaum ist das raus: SCHWUPPS - gefunden!
So sollte ich das immer machen .... in diesem Sinne: Wer hat meine 5.000,- € gesehen??? ;)

Spass beiseite: Ich habe doch noch in den Tiefen unserer Dateisysteme zwei Archive gefunden.
Eines, mit der Binären Version von fastlogres 0.2.0 für i386er Systeme, und den Quellcode zu fastlogres 0.2.1 .

In letzterem findet sich auch ein sehr ordentlich gepflegtes README, welches Aufschluss auf den Autor gibt. Es handelt sich dabei um einen "Jan Wedekind". Seine Homepage ist laut README http://www.wede.de und fastlogres soll dort unter http://www.wede.de/sw/fastlogres/ zu finden sein.
Leider ist das nicht der Fall, und die Seite gibt es nicht mehr.
Eine Suche nach "Jan Wedekind" brachte ein paar Blogs hervor, jedoch keine neue Homepage.

Was soll's? Mach ich halt den Mirror:

Binär:

Quelltext:

Das ganze steht zum Glück unter GPLv2 :)

20080904 - 22:32 CET
PS:

Dank Sven's Link (siehe Kommentare) konnte ich die alte Webseite wieder herstellen. ... was heisst "wieder herstellen"? - Ich konnte sie herunterladen ;)
Ihr findet die ganze Seite nun hier.

Danke @ Sven! :)

Teilen per: TwitterEmail


VMware unter (*)ubuntu zum laufen bringen

Hallo zusammen!

Ich habe ja länger nichts geschrieben. Aufgrund der heutigen Aktion mit VMware unter Linux sehe ich mich dazu aber fast gezwungen. Das ist mal wieder _so_ schwachsinnig und typisch VMware, das muss einfach festgehalten werden:

Was ich schon kenne im Zusammenhand mit VMware Server unter Linux ans laufen bringen ist, das man irgendwie immer erst einen Kernel kompilieren muss, da die mit der Distribution mitgelieferte GCC Version in aller Regel eine andere ist, als die, mit der der ebenfalls mitgelieferte Kernel kompiliert wurde.

Zumindest war das unter meinem Debian System so.
Nun habe ich jedoch ein (k)ubuntu auf meinem Laptop und bekomme nach der Installation von VMware Server, beim starten der VMware Konsole diesen Block an Fehlermeldungen:

/usr/local/lib/vmware/bin/vmware:
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/local/lib/libstdc++.so.6)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/local/lib/libstdc++.so.6)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)

Ich denke mir schon so .oO( ... oh NO! Nicht schon wieder Kernel backen! ). Ist aber auch garnicht nötig gewesen! :)

Auf dieser Seite fand ich die Lösung. Sie liest sich erstmal so "... alles klar ... lösche ich mal ein paar Libraries ... dadurch wird's bestimmt besser ..."</ironie>. Aber: Das klappt wirklich!

Man muss nur die Datei lib/libgcc_s.so.1/libgcc_s.so.1 (im Unterverzeichnis, wo man den VMware Server installiert hat. Bei mir z.B.: /usr/local/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1 ) entfernen, bzw. umbenennen. Anschliessend startet VMware ohne Probleme ... kurios! :)

Teilen per: TwitterEmail