ubuntuusers.de

~/.ssh/known_hosts editieren

Status: Gelöst | Ubuntu-Version: Ubuntu 8.04 (Hardy Heron)
Antworten |

ingo2

Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Gibt es eine Möglichkeit, die known_hosts einfach zu editieren?

Die wächst bei mir ständig an, wenn man von extern auf dynamische IP's zugreift, bis dann irgendwann garnix mehr geht, da irgendein alter Key darin zu Warnungen führt und den ssh-Login verweigert. Dann hilft nur noch: known_hosts löschen und ganz neu anfangen.

Den Einträgen in known_hosts sieht man leider nicht an, zu welchem ssh-Server sie gehören, damit ist auch ein

ssh-keygen -R ...

sinnlos, denn man weiß ja nicht unter welcher Identität der Server dort verewigt ist. Kann man das entschlüsseln?

Viele Grüße, Ingo

d1rk

Anmeldungsdatum:
5. April 2006

Beiträge: 2420

ingo2 schrieb:

Die wächst bei mir ständig an, wenn man von extern auf dynamische IP's zugreift, bis dann irgendwann garnix mehr geht, da irgendein alter Key darin zu Warnungen führt und den ssh-Login verweigert. Dann hilft nur noch:

… in die Zeile zu gehen, die in der Fehlermeldung angegeben wird, und die Zeile zu löschen, oder es so einzustellen, dass fehlerhafte Keys ignoriert werden (ssh -o 'CheckHostIP no' bzw. ein entsprechender Eintrag in der Konfigurationsdatei) ☺

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Danke für die Info - wußte nicht, daß die Ziffer in der Fehlermeldung die Zeilen-Nr. in der known_hosts ist!

In der Konfigrationsdatei ssh_config möchte ich das eigentlich nicht abschalten, dann gilt es ja systemweit für alle Hosts.

Gibt es eine Möglichkeit, das auf der Serverseite zu de-aktivieren? (das betrifft ja wirklich nur einen einzigen Server mit dynamischer IP, der auch nur Verbindungen von diesem einen Client erlaubt)

Ingo

d1rk

Anmeldungsdatum:
5. April 2006

Beiträge: 2420

ingo2 schrieb:

In der Konfigrationsdatei ssh_config möchte ich das eigentlich nicht abschalten, dann gilt es ja systemweit für alle Hosts.

Unter ~/.ssh/config kannst du das auch je User einstellen.

Gibt es eine Möglichkeit, das auf der Serverseite zu de-aktivieren?

Das hat nichts mit dem Server zu tun, sondern nur mit dem Client. ☺

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Danke, dann werde ich mal meine ~/.ssh/config bearbeiten,

Frohe Ostern, Ingo

d1rk

Anmeldungsdatum:
5. April 2006

Beiträge: 2420

ingo2 schrieb:

Frohe Ostern

Gleichfalls, Danke!

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Habe jetzt auch einen Weg gefunden, damit die IP und Ports des Servers in der known_hosts im Klartext erscheinen:

~/.ssh/config editieren (bzw. neu anlegen) und am Anfang folgende Zeile einfügen:

HashKnownHosts no

und die Einträge sehen dann so aus:

[217.87.192.71]:xxxxx ssh-rsa AAAAB3Nza.....      (xxxxx ist die Port-Nr.)
[217.87.205.2]:xxxxx ssh-rsa AAAAB3NzaC.....      (xxxxx ist die Port-Nr.)

und man kann gezielt die ungültigen Zeilen löschen!

Viele Grüße, Ingo

J-K

Anmeldungsdatum:
21. August 2007

Beiträge: 49

Wohnort: Bebra

Kleiner Tipp, gefunden bei http://linux-aha.de/wordpress/?p=112. Folgende Funktion in ~/.bashrc einfügen:

1
2
3
4
5
function ssh-delete-knownhost-line {
 sed -i ${1}d ~/.ssh/known_hosts
 sed -i ${1}d ~/.ssh/known_hosts
 echo "Zeile ${1} gelöscht"
}

Damit lässt sich schnell und einfach der relevante Eintrag löschen. Einfach die Zeilennummer aus der Fehlermeldung mitgeben.

d1rk

Anmeldungsdatum:
5. April 2006

Beiträge: 2420

J-K schrieb:

Folgende Funktion in ~/.bashrc einfügen: […]

Vier Monate alter Thread, immerhin sinnvoll wieder exhumiert 😉 Nur der kilometerlange Funktionsname … da solltest du noch mal drüber nachdenken. Auch darüber, dass die Funktion sinnloser Weise spamt ist sicher nicht nötig …

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Guter Tip J-K,

das hilft aber leider nicht in meinem Fall. Mein Problem ist nicht die Verweigerung des Log-in wegen geändertem Host-Key, sondern das Aufblähen der known_hosts weil der SSH-Server täglich eine neue IP bekommt (Zwangstrennung der T-Com). Da bekomme ich natürlich auch keine Fehlermeldung, sondern nur jedes Mal eine Aufforderung, den Key von der neuen IP zu akzeptieren, der dann der known_hosts zugefügt wird.

Leider (aber wohl aus Sicherheitsgründen) wird der Key in der known_hosts nicht dem hostname sondern der IP zugeordnet.

Viele Grüße,

Ingo

Lux Team-Icon

Avatar von Lux

Anmeldungsdatum:
10. November 2005

Beiträge: 5152

Wohnort: Grüt (Gossau ZH), Schweiz

ingo2 schrieb:

Leider (aber wohl aus Sicherheitsgründen) wird der Key in der known_hosts nicht dem hostname sondern der IP zugeordnet.

Generell ist es eine gute Idee, eine Datei ~/.ssh/config zu haben, dort könntest Du beispielsweise aufnehmen:

Host eisenkarl
  User ichbins
  HostName obi.dyndns.org
  CheckHostIP no

Damit kannst Du Dich mittels "ssh eisenkarl" verbinden, unabhängig von der IP-Adresse.

Gruss

Dirk

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Hi Lux,

das ist die wirkliche Lösung meines Problems, jetzt geht es ohne Eintrag in der known_hosts.

Der Knackpunkt war die Zeile

 CheckHostIP no

die anderen Einträge hatte ich schon in der ~/.ssh/config. Auf den Eintrag

 User xyz

kann ich verzichten, da das Einloggen von extern sowieso nur über einen hohen Port und mit meinem privaten ssh-key erlaubt ist - da können die Script-Kiddies sich die Zähne ausbeißen, wenn sie denn die Port-Nummer überhaupt suchen und finden 😉

Jetzt knurrt zwar mein nas mit dem ssh-Server und gibt folgende Warnung aus:

 ssh nas-extern

  !!! WARNING - this incident and your IP has been logged !!!

Linux nas 2.6.26-2-orion5x #1 Mon Jun 22 01:31:12 UTC 2009 armv5tel

......

Aber es geht - Danke!

Ingo

P.S.: jetzt werde ich mal meine known_hosts komplett ausmisten - zum letzten Mal ☺

Antworten |