Veraltete Einträge in .ssh/known_hosts

Ronny hat mir grade eine kleine Bash Funktion geschickt, die mir ab jetzt viel Nerven sparen wird:

Wenn ein Server neu installiert wird (passiert bei uns schon ab und zu) ändern sich auch die SSH Server Keys. Beim nächsten Versuch, sich per SSH auf die neu installierte Maschine zu verbinden, verweigert SSH Aufgrund der Sicherheitseinstellungen den Dienst.

Es war dann immer umständlich, die alten Keys aus der known_hosts zu löschen.

Mit der folgenden Funktion (eingebaut in die .bashrc) geht das recht flott.

Als Übergabe nur die Zeilennummer mitgeben, die bei der SSH Fehlermeldung steht:

function sshknownhosts {
 if [ $1 ]; then
  sed -i ${1}d ~/.ssh/known_hosts
  sed -i ${1}d ~/.ssh/known_hosts
  echo "Zeile ${1} geloescht"
 else
  echo "Bitte Zeilennummer angeben"
 fi
}

Sehr feines sed Skript zum löschen einer Zeile in einer Textdatei.

Thx Ronny!

4 Responses to Veraltete Einträge in .ssh/known_hosts

  1. ich hatte auch ein script geschrieben. dummerweise habe ich exakt(!) ssh-keygen -R emuliert

    man müsste einfach mehr zeit zum manpages lesen haben.
    danke commandline-Fu
    -jojoo, der :/servername dd:x schon geträumt hat, vor er ein unsinniges script geschrieben hat

  2. commandline-Fu

    cool, ein script schreiben obwohl ein binär befehl dafür existiert: ssh-keygen -R

    dein script ist schneller, fehlertoleranter, huebscher oder hast du einfach zu viel zeit?

    • Ronny

      Danke für die Info.
      Warum ich dafür das Script geschrieben habe? Hmmm… Die Wahrscheinlichkeit ist wohl sehr hoch, dass mir Dein Tipp nicht bekannt war.

      Ich bin trotzdem nicht traurig drum :-)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>