GNU/Linux >> LINUX-Kenntnisse >  >> Linux

ssh-keyscan - immer noch befördert mit Die Authentizität des Hosts '[Hostname] ([IP-Adresse])' kann nicht festgestellt werden

Versuchen Sie Folgendes:

ssh-keyscan -t rsa [ip_address]

Nehmen Sie die Ausgabe und fügen Sie sie in .ssh/known_hosts ein. Wenn Sie nun known_hosts hashen möchten, tun Sie dies:

ssh-keygen -H

Bearbeiten: Heres die Ein-Befehl-Lösung. Es verwendet Hostnamen und IP-Adressen und hasht beides.

ssh-keyscan -Ht rsa [hostname],[IP address] >> known_hosts

Die Antwort von kschurig wird funktionieren, ist aber nicht unbedingt die sicherste. Es gibt Bonuspunkte, wenn Sie die Extrameile gehen, damit Sie den Server anhand von mehr als einem URI identifizieren können – d. H. Hostname und IP-Adresse. Das heißt, Sie könnten weiterhin gültige URIs dieses Hosts hinzufügen, indem Sie die durch Kommas getrennte Liste erweitern.

Ich habe jedoch nach einer einfachen Möglichkeit gesucht, die unbekannte manuelle Interaktion des Hosts beim Klonen eines Git-Repos zu umgehen, wie unten gezeigt, und es sollte helfen, zu erklären, was passiert und wie Sie diesen einen Teil des Skriptens einiger SSH-bezogener Dinge vermeiden können:

[email protected]:~$ git clone [email protected]:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

Notieren Sie sich den Fingerabdruck des RSA-Schlüssels...

Das ist also eine SSH-Sache, dies funktioniert für Git über SSH und nur für SSH-bezogene Dinge im Allgemeinen ...

[email protected]:~$ nmap bitbucket.org --script ssh-hostkey

Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
| ssh-hostkey:
|   1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_  2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds

Installieren Sie zunächst nmap auf Ihrem täglichen Treiber. nmap ist für bestimmte Dinge sehr hilfreich, z. B. das Erkennen offener Ports und dies - manuelles Überprüfen von SSH-Fingerabdrücken. Aber zurück zu dem, was wir tun.

Gut. Entweder bin ich an den vielen Orten und Maschinen, an denen ich es überprüft habe, kompromittiert worden – oder die plausiblere Erklärung dafür, dass alles in Ordnung ist, ist das, was passiert.

Dieser „Fingerabdruck“ ist nur eine Zeichenfolge, die mit einem Einwegalgorithmus für unsere menschliche Bequemlichkeit gekürzt wurde, auf die Gefahr hin, dass mehr als eine Zeichenfolge in denselben Fingerabdruck aufgelöst wird. Es kommt vor, sie werden Kollisionen genannt.

Egal, zurück zum ursprünglichen String, den wir unten im Kontext sehen können.

[email protected]:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg

Wir haben also im Voraus eine Möglichkeit, den ursprünglichen Host um eine Form der Identifizierung zu bitten.

An diesem Punkt sind wir sowohl manuell als auch automatisch angreifbar – die Zeichenfolgen stimmen überein, wir haben die Basisdaten, die den Fingerabdruck erstellen, und wir könnten in Zukunft nach diesen Basisdaten fragen (um Kollisionen zu verhindern).

Um diese Zeichenkette nun so zu verwenden, dass sie nicht nach der Authentizität eines Hosts gefragt wird...

Die known_hosts-Datei verwendet in diesem Fall keine Klartexteinträge. Sie werden gehashte Einträge erkennen, wenn Sie sie sehen, sie sehen aus wie Hashes mit zufälligen Zeichen anstelle von xyz.com oder 123.45.67.89.

[email protected]:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

Die erste Kommentarzeile taucht ärgerlicherweise auf – aber Sie können sie mit einer einfachen Weiterleitung über die Konvention „>“ oder „>>“ loswerden.

Da ich mein Bestes getan habe, um unverfälschte Daten zu erhalten, die zur Identifizierung eines "Hosts" und Vertrauens verwendet werden können, werde ich diese Identifizierung zu meiner known_hosts-Datei in meinem ~/.ssh-Verzeichnis hinzufügen. Da es jetzt als bekannter Host identifiziert wird, erhalte ich die oben erwähnte Eingabeaufforderung nicht, wenn Sie ein Jugendlicher waren.

Danke, dass du bei mir bleibst, los geht's. Ich füge den Bitbucket-RSA-Schlüssel hinzu, damit ich dort als Teil eines CI-Workflows nicht interaktiv mit meinen Git-Repositories interagieren kann, aber was auch immer Sie tun, was Sie wollen.

#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts

So bleibst du also für heute Jungfrau. Sie können dasselbe mit github tun, indem Sie in Ihrer Freizeit ähnlichen Anweisungen folgen.

Ich habe so viele Stack-Overflow-Posts gesehen, die Ihnen sagen, dass Sie den Schlüssel programmgesteuert blind hinzufügen sollen, ohne irgendeine Art von Überprüfung. Je mehr Sie den Schlüssel von verschiedenen Computern in verschiedenen Netzwerken überprüfen, desto mehr können Sie darauf vertrauen, dass der Host derjenige ist, für den er sich ausgibt – und das ist das Beste, was Sie von dieser Sicherheitsebene erwarten können.

FALSCHssh -oStrictHostKeyChecking=kein Hostname [Befehl]

FALSCHssh-keyscan -t rsa -H Hostname>> ~/.ssh/known_hosts

Tun Sie bitte keines der oben genannten Dinge. Sie haben die Möglichkeit, Ihre Chancen zu erhöhen, zu vermeiden, dass jemand Ihre Datenübertragungen über einen Man-in-the-Middle-Angriff abhört – nutzen Sie diese Gelegenheit. Der Unterschied besteht buchstäblich darin, zu überprüfen, ob der RSA-Schlüssel, den Sie haben, der des echten Servers ist, und jetzt wissen Sie, wie Sie diese Informationen erhalten, um sie zu vergleichen, damit Sie der Verbindung vertrauen können. Denken Sie nur daran, dass mehr Vergleiche von verschiedenen Computern und Netzwerken normalerweise Ihre Fähigkeit erhöhen, der Verbindung zu vertrauen.


Linux
  1. 3 nützliche Dinge, die Sie mit dem IP-Tool in Linux tun können

  2. Wie verwende ich denselben SSH-Alias ​​mit mehreren Hostadressen/Ports/etc.?

  3. Kann ich HTML-Dateien (mit Bildern, CSS) über die Befehlszeile drucken?

  4. Wie kann ich Tastatur und Maus mit Python steuern?

  5. Wie kann ich den beim Kopieren verwendeten Cache begrenzen, damit noch Speicher für andere Caches verfügbar ist?

4 Möglichkeiten, wie Sie ein PDF mit dem Befehl pdftk-java bearbeiten können

Wie kann ein Bash-Skript das Verzeichnis kennen, in dem es installiert ist, wenn es mit . Operator?

Wie kann ich das neueste Anaconda mit wget installieren

Kann über LAN ping/ssh, aber nicht mit Wi-Fi

libvirt:Wie kann ich eine Domain starten lassen, wenn der Host startet?

Wie kann ich eine Datei mit Zeilennummern öffnen, die von der Befehlszeile in 'vi' angezeigt werden?