Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe
Makerprojekte => Raspberry Pi und Co (Einplatinencomputer) => Thema von: Dietrich am 13. Dezember 2023, 19:04:16

Titel: Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Dietrich am 13. Dezember 2023, 19:04:16

Moinsen,
dachte mal eben schnell eine SD-Karte mit einem Image versehen und los geht's, weit gefehlt.
Auf die erste Anmeldung kam nix, bis ich festellte das der SSH Zugang bei RaspienOS standardmäßig nicht aktiviert ist.
Ok, Tastatur, Bildschirm ran und aktiviert, das Ergebnis siehe unten

[dietrich@dietrich-medion ~]$ sudo ssh pi@192.168.178.42
[sudo] Passwort für dietrich:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:qjP35uFIJTr4k9VhTSxVsXhetrT82UVieFdJKl6Pank.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
Host key for 192.168.178.42 has changed and you have requested strict checking.
Host key verification failed.
[dietrich@dietrich-medion ~]$




Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Andreas am 13. Dezember 2023, 19:36:33

Du hast Dich auf diese IP schon mal eingeloggt - aber der Schlüssel hat sich in der Zwischenzeit geändert. Das könnte eine man-in-the-middle-attacke sein: der Zugriff wird verweigert.

Lösung:

Folge den Anweisungen in der Fehlermeldung und lösche die Zeile(n) die "192.168.178.42 " enthalten in deiner ~/.ssh/known_hosts

LG
Andreas

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Dietrich am 13. Dezember 2023, 20:00:48

Hallo Andreas,

danke für die Lösung des Problems, bei dem was alles geschrieben steht war ich mir nicht sicher was zu tun ist.
Wenn die da schreiben ich soll den korrekten Schlüssel eingeben, kommt man nicht automatisch auf löschen des Eintrages.

Wieder ein Stückel schlauer geworden ;D

LG
Dietrich



Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Sebastian am 13. Dezember 2023, 20:31:03

Genau, was Andreas schon sagte.

Du musst dich schon mal mit deinem Notebook/PC, was auch immer, mit deinen Rasbi unter der IP 192.168.178.42 verbunden haben. Bei der ersten Verbindung merkt sich dann dein SSH Client den Schlüssel von deinem PI und vergleicht diesen bei jeder neuen Verbindung, ob dieser immer noch derselbe ist.

Grade, wenn man ein neues Image für einen PI verwendet, ist die Wahrscheinlichkeit groß, dass in diesem Image, das du auf die SD gepackt hast, ein neuer SSH Key für deinen PI drin steckt. Ergo bei der nächsten Verbindung sagt dein SSH Client "Achtung der Schlüssel stimmt nicht mit dem überein, den ich mir für die IP-Adresse 192.168.178.42 gemerkt habe". Da könnte also jemand etwas Böses versuchen und sich als dein PI ausgeben. Dies ist aber wie gesagt zu erwarten, wenn man ein anderes Image mit einem anderen Key benutzt und kann deswegen mit den Anweisungen aus der Fehlermeldung behoben werden.

PS:

Übrigens der Offizielle weg um eine Zeile aus der .ssh/known_hosts zu löschen ist nicht der mithilfe eines Text-Editors wie viele es gerne machen. Sondern ist in dem Tool ssh-keygen versteckt.


Code:

ssh-keygen -R hostname [-f known_hosts_file]

Zitat:
-R hostname | [hostname]:port
Removes all keys belonging to the specified hostname (with optional port number) from a known_hosts file. This option is useful to
delete hashed hosts (see the -H option above).


Also in deinem Fall hieße der dann so wenn du den Standard SSH Port 21 verwendest:


Code:

ssh-keygen -R 192.168.178.42


Warum gibt es diese Möglichkeit? Denn man kann aus Sicherheitsgründen die Hostnamen/IP-Adressen auch gehasht in der .ssh/known_hosts speichern. Dann kann man die passende Zeile mit einem Editor nicht mehr finden. Dafür gibt es also die -R Option.

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Dietrich am 13. Dezember 2023, 20:54:48

Hallo Sebastian,

ich habe es da eher mit dem Schweizer Taschenmesser MC ggf mit sudo starten dann klappt es.

LG Dietrich

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Sebastian am 13. Dezember 2023, 21:23:22

Hallo Dietrich,

Der Trick mit sudo würde aber auch nur einmal klappen, falls sich der Key von deinen Rasbi mal wieder ändern sollte.

Denn mit sudo hast du deinen SSH Client als Root gestartet. Root hat seine eigene known_hosts Datei in seinem Heimverzeichnis wie jeder andere Benutzer auch. Mit anderen Worten der Lokale Benutzer Root hatte noch nie eine Verbindung zu deinem Pi unter der 192.168.178.42 Adresse aufgebaut, also war seine known_hosts Datei noch leer bzw. hatte noch keinen Eintrag dazu. Denn bekommt sie aber bei der ersten Verbindung. Ab der zweiten hättest du also wieder das Problem, falls sich der Key auf deinen PI ändert, auch als Root.

Du kannst dir ja mal die known_hosts Datei von deinem Lokal Root Benutzer in seinem Heimatverzeichnis anschauen, die findest du unter

/root/.ssh/known_hosts

Achtung um da rein schauen zu können musst du mit sudo arbeiten, da in das Verzeichnis /root nur root hereinschauen darf.

Edit:

PS:

Mit MC ist auch nichts gegen auszusetzen. Ich wollte nur eine weitere Möglichkeit aufzeigen, die genutzt werden kann bzw. genutzt werden muss, wenn man erst mal anfängt, mit Hashes zu arbeiten. Der Heimanwender brauch so was wahrscheinlich nicht. Aber im Firmenumfeld, wo es auf Sicherheit ankommt, da schon ;)

Edit:

@Dietrich
Nachtrag glaube, ich habe dich mit sudo falsch verstanden. Du meintest, glaube ich eher den MC mit sudo zu starten als Beispiel, und nicht den SSH Client. Das ist dann natürlich richtig, wenn man ein Programm wie MC startet, mit Root rechten. Dann sollte man Lokal alles bearbeiten können.

Das Beispiel als ich dich erst falsch verstanden habe, den SSH Client als Root zu starten, behält natürlich auch seine Gültigkeit.

LG
Sebastian

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Dietrich am 15. Dezember 2023, 16:20:19

Hallo Sebastian,
sorry da bin ich falsch verstanden worden,

MC mit sudo gestartet, damit ich beim speichern sauber mit F2 rauskomme

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Andreas am 15. Dezember 2023, 17:16:32

Sebastian meinte:

Je nachdem unter welchem Usernamen Du die ssh Session startest landet der entfernte host in der known_hosts Datei im Home-Verzeichnis des Users.

Beispiel:

Du startest eine Konsole als "dietrich". In der Konsole gibst Du ein

Code:
ssh ip-des-clients -u root

In diesem Fall wäre die zu editierende Datei nicht im Verza#eichnis von root, sondern von dietrich! Und dann kannst Du den mc auch als Dietrich starten.

LG
Andreas

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Sebastian am 15. Dezember 2023, 21:03:07

Nein, ich habe das noch anders gemeint. Und zwar das, wenn man Lokal den SSH Client als Root startet wird die Lokale known_hosts Datei geprüft.


Code:

sudo ssh ip-des-servers -u dietrich


So würde Lokal ein Eintrag in /root/.ssh/known_hosts entstehen. Und dieser Eintrag würde beim nächsten Mal mit dem Key des Pis abgeglichen werden.

Mit anderen Worten es wird ein anderer Eintrag aus einer anderen known_hosts zur Prüfung herangezogen als wenn der Befehl so aufgerufen wird:


Code:

ssh ip-des-servers -u dietrich


Man beachte das fehlende sudo. Damit würde ein Eintrag unter $HOME/.ssh/known_hosts zur prüfung des Remote Keys herangezogen werden. Wobei dieses Mal mit $HOME nicht das von Root gemeint ist.

Man bekäme eine andere Warnung, dass der Remote Server noch nicht bekannt ist.


Edit:

Ich weiß, das macht nicht viel Sinn ssh als Root zu starten. Aber ich kam halt schnell auf die Idee, da ich sudo auch dafür verwende Befehle, als anderen Benutzer auszuführen. Weil sudo eigentlich ja ein Programm ist um kurzfristig ein Befehl als ein anderer Benutzer auszuführen.

Angenommen, es gibt auf einen Host den Benutzer sebastian und dietrich.

Dann könnte ich als sebastian einen Befehl kurzfristig in Dietrichs Namen so abschicken:


Code:

sudo -u dietrich ssh ip-zum-server -u dietrich


Dadurch würde ich ssh als Dietrich starten und somit würde auch seine ~dietrich/.ssh/known_host Datei herangezogen werden. Voraussetzung ich als sebastian habe die Berechtigung dafür in der /etc/sudoers

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Andreas am 16. Dezember 2023, 07:52:04

Hallo Sebastian,

wir meinen schon so in etwa das Gleiche - wir drücken es nur anders aus.

Fazit (das ich meinte und Du auch):
Es wird die .ssh/known_hosts benutzt unter deren Benutzer der ssh Befehl aufgerufen wurde.

LG
Andreas

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Sebastian am 16. Dezember 2023, 19:46:09

Hallo Andreas,

Angenommen man ist als Benutzer dietrich an einem Notebook angemeldet. Und man möchte sich jetzt auf seinem Rassbery Pi mit dem Benutzer "pi" anmelden. Dann gibt es schon einen Unterschied zwischen diesen beiden Befehlen


Code:

ssh IP-des-SSH-Server-auf-dem-Pi -u pi

sudo ssh IP-des-SSH-Server-auf-dem-Pi -u pi


Der erste Befehl ohne sudo nutzt zum Abgleich, ob der SSH Server des PI schon bekannt ist, die known_hosts Datei von dem Benutzer dietrich also

~dietrich/.ssh/known_hosts

und der andere Befehl mit sudo würde die known_hosts von root zum Abgleich zu rate ziehen, also diese hier:

/root/.ssh/known_hosts

Bei beiden Befehlen ist man am Ende dann trotzdem als Benutzer "pi" auf dem Rasberry Pi eingeloggt.

Dem shh Server auf dem Pi wiederum interessiert die known_hosts Datei überhaupt nicht. Der prüft nur, ob die Credentials für den SSH Login gültig sind. Der Client könnte eh ständig wechseln z.b. wenn dietrich sich nicht von seinem Notebook auf dem Pi einloggt, sondern über einen PC oder der gleichen.

Die known_hosts Datei ist also nur eine Hilfe für Clients um sich Adressen und Keys von SSH Servern zu merken. Um den Client dann warnen zu können, wenn der Key des SSH Servers nicht mehr mit der gemerkten Adresse des Servers übereinstimmt.

Deswegen hätte es (angenommen es wurde noch nie der SSH Client mit sudo gestartet, um sich auf dem PI anzumelden) keine Warnung gegeben, dass der SSH Key des SSH-Servers auf dem PI nicht mehr mit der IP-Adresse übereinstimmt, sondern der SSH Client hätte gefragt, ob der Server in die Known_hosts Datei aufgenommen werden soll, da der ssh Client vorher von root noch nie gestartet wurde um eine Verbindung zu dem PI herzustellen, um sich mit welchem Login auch immer anzumelden. Der Login Account, mit dem man sich auf dem Server anmelden möchte, spielt dabei nämlich keine Rolle.

Selbst falls wir immer noch beide dasselbe meinen sollten, dann steht es hier jetzt halt etwas ausführlicher für diejenigen, die sich mit den Details beschäftigen möchten, aber vielleicht nicht dem Englischen so mächtig sind. Schaden kann es nicht :)

LG
Sebastian

Titel: Re:Raspberry SSH Zugang mit Fehlermeldung
Beitrag von: Andreas am 17. Dezember 2023, 08:40:29

Hallo Sebastian,

genau das was Du beschrieben hast habe ich mit meinem fettgedruckten Satz gesagt...

Rufst Du ohne sudo auf, läuft er mit deinen Rechten. Rufst Du ihn mit sudo auf, läuft er als root (mit allen Konsequenzen wie "was ist eigenlich ~")

LG
Andreas


Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.