it-swarm.com.de

So erstellen Sie ein ssh-Schlüsselpaar, wenn die Überprüfung des Host-Schlüssels fehlgeschlagen ist

Ich habe ssh-Schlüsselpaare zwischen meinem Desktop und zwei Servern und von den Servern auf meinem Desktop eingerichtet. Nach der Neuinstallation des Betriebssystems auf meinem Desktop kann ich das Schlüsselpaar, das auf meinem Desktop angezeigt wird, nicht wie folgt wiederherstellen: 

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t 
ssh-copy-id [email protected]

Ich erhalte folgende Fehlermeldung:

(Namen in kursiv geändert, um die Unschuldigen zu schützen. Mein Desktop ist Ubuntu, und ich kann keine Antwort finden hier )

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ @ WARNUNG: REMOTE Host-IDENTIFIZIERUNG HAT GEÄNDERT! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ ES IS MÖGLICH, DASS JEMAND IS ETWAS TUT!! Jemand könnte Sie gerade abhören (man-in-the-middle Attack)! Es ist auch möglich, dass der RSA-Hostschlüssel gerade geändert wurde. Der Fingerabdruck für den vom Remote-Host gesendeten RSA-Schlüssel lautet A B C D E F G H Bitte kontaktieren Sie Ihren Systemadministrator. Fügen Sie den korrekten Host-Schlüssel in/home/user /. Ssh/known_hosts hinzu, um .__ zu erhalten. Befreien Sie sich von dieser Nachricht . Beleidigende Taste in/home/user /. Ssh/known_hosts: 1 Der RSA-Host-Schlüssel für user.server hat sich geändert und Sie haben strikte .__ angefordert. Überprüfung. Hostschlüsselüberprüfung fehlgeschlagen.

45
David LeBauer
ssh-keygen -R hostname

Dadurch wird der fehlerhafte Schlüssel aus dem known_hosts gelöscht.

Der Manpage-Eintrag lautet:

-R hostname Entfernt alle Schlüssel, die zu hostname gehören, aus einer known_hosts-Datei. Diese Option ist nützlich, um gehashte Hosts zu löschen (siehe Option -H Oben).

106
RobAu

Höchstwahrscheinlich befindet sich der entfernte Host ip oder ip_alias nicht in der Datei ~/.ssh/known_hosts. Sie können den folgenden Befehl verwenden, um den Hostnamen zur known_hosts-Datei hinzuzufügen.

$ssh-keyscan -H -t rsa ip_or_ipalias >> ~/.ssh/known_hosts

Außerdem habe ich das folgende Skript generiert, um zu überprüfen, ob die bestimmte IP- oder IPalias-Datei in der Datei know_hosts enthalten ist.

#!/bin/bash
#Jason Xiong: Dec 2013   
# The ip or ipalias stored in known_hosts file is hashed and   
# is not human readable.This script check if the supplied ip    
# or ipalias exists in ~/.ssh/known_hosts file

if [[ $# != 2 ]]; then
   echo "Usage: ./search_known_hosts -i ip_or_ipalias"
   exit;
fi
ip_or_alias=$2;
known_Host_file=/home/user/.ssh/known_hosts
entry=1;

cat $known_Host_file | while read -r line;do
  if [[ -z "$line" ]]; then
    continue;
  fi   
  hash_type=$(echo $line | sed -e 's/|/ /g'| awk '{print $1}'); 
  key=$(echo $line | sed -e 's/|/ /g'| awk '{print $2}');
  stored_value=$(echo $line | sed -e 's/|/ /g'| awk '{print $3}'); 
  hex_key=$(echo $key | base64 -d | xxd -p); 
  if  [[ $hash_type = 1 ]]; then      
     gen_value=$(echo -n $ip_or_alias | openssl sha1 -mac HMAC \
         -macopt hexkey:$hex_key | cut -c 10-49 | xxd -r -p | base64);     
     if [[ $gen_value = $stored_value ]]; then
       echo $gen_value;
       echo "Found match in known_hosts file : entry#"$entry" !!!!"
     fi
  else
     echo "unknown hash_type"
  fi
  entry=$((entry + 1));
done
10
Jason Xiong

Wenn Sie sure der Server korrekt ist, löscht sed -i 1d ~/.ssh/known_hosts Zeile 1 Ihres lokalen ~/.ssh/known_hosts Der neue korrekte Schlüssel wird der Datei beim nächsten Verbindungsaufbau hinzugefügt.

5
ephemient

Schritt 1: $ Bhargava.ssh # 

ssh-keygen -R 199.95.30.220

schritt 2: $ Bhargava.ssh # 

ssh-copy-id [email protected]

          Enter the the password.........

schritt 3: Bhargava .ssh # 

ssh [email protected]

Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-68-generic x86_64) * Documentation: https://help.ubuntu.com/ Ubuntu 14.04.3 LTS server : 228839 ip : 199.95.30.220 hostname : qt.example.com System information as of Thu Mar 24 02:13:43 EDT 2016 System load: 0.67 Processes: 321 Usage of /home: 5.1% of 497.80GB Users logged in: 0 Memory usage: 53% IP address for eth0: 199.95.30.220 Swap usage: 16% IP address for docker0: 172.17.0.1 Graph this data and manage this system at: https://landscape.canonical.com/ Last login: Wed Mar 23 02:07:29 2016 from 103.200.41.50

hostname @ qt: ~ $ 

4
Batchu Bhargava

Manchmal gibt es auch Situationen, in denen Sie an der seriellen Konsole arbeiten. Wenn Sie den Befehl oben im ausführlichen Modus überprüfen, zeigt -v, dass/dev/tty nicht vorhanden ist.

Entfernen Sie in diesem Fall einfach/dev/tty und erstellen Sie einen Symlink von/dev/ttyS0 nach/dev/tty.

2
peeyush

Zunächst sollten Sie den vorhandenen Schlüssel entfernen. SSH-Schlüssel werden in den meisten Linux-basierten Betriebssystemen in dieser Datei "/root/.ssh/known_hosts" gespeichert. Um den mit Host verbundenen Schlüssel zu entfernen, wird folgender Befehl verwendet:

ssh-keygen -f "/root/.ssh/known_hosts" -R [Hostname]

Grüße K1

0
Keivan
rm -f /home/user/.ssh/known_hosts

oder öffnen Sie es und löschen Sie den Eintrag für die fehlerhafte IP/Hostname

(P.S. Es sagt Ihnen genau das in Ihrer Fehlermeldung)

0
Matt Phillips

Dies bedeutet, dass Ihr Remote-Host-Schlüssel geändert wurde (kann Host-Kennwort ändern).

Ihr Terminal hat vorgeschlagen, diesen Befehl als Root-Benutzer auszuführen

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

Sie müssen diesen Hostnamen aus der Hostliste auf Ihrem PC/Server entfernen. Kopieren Sie den vorgeschlagenen Befehl und führen Sie ihn als Root-Benutzer aus.

$ Sudo su                                                            // Login as a root user

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231   // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

$ exit                                                               // Exist from root user

$ Sudo ssh [email protected] -p 4231                              // Try again

Ich hoffe das funktioniert.

0
Jay Patel