Frage Kann ich Bekannten_Hosts automatisch einen neuen Host hinzufügen?


Hier ist meine Situation: Ich richte eine Testumgebung ein, die von einem zentralen Client aus eine Reihe von Instanzen virtueller Maschinen startet und dann über sie Befehle ausführt ssh. Die virtuellen Maschinen haben bisher ungenutzte Hostnamen und IP - Adressen, so dass sie nicht in der ~/.ssh/known_hosts Datei auf dem zentralen Client.

Das Problem, das ich habe, ist das erste ssh Befehl ausführen gegen eine neue virtuelle Instanz kommt immer mit einer interaktiven Eingabeaufforderung:

The authenticity of host '[hostname] ([IP address])' can't be established.
RSA key fingerprint is [key fingerprint].
Are you sure you want to continue connecting (yes/no)?

Gibt es eine Möglichkeit, dass ich das umgehen kann und den neuen Host dem Client-Computer bereits bekannt machen kann, vielleicht mithilfe eines öffentlichen Schlüssels, der bereits in das Image der virtuellen Maschine eingebunden ist? Ich möchte wirklich vermeiden, Expect oder was auch immer zu verwenden, um die interaktive Eingabeaufforderung zu beantworten, wenn ich kann.


217
2018-04-16 04:15


Ursprung


Für eine Testumgebung, die in sich abgeschlossen und physisch sicher ist, kann die automatische Schlüsselakzeptanz gut funktionieren. Das automatische Akzeptieren öffentlicher Schlüssel in einer Produktionsumgebung oder über ein nicht vertrauenswürdiges Netzwerk (wie das Internet) umgeht jedoch jeglichen Schutz gegen Man-in-the-Middle-Angriffe, die SSH sonst leisten würde. Das nur Um zu gewährleisten, dass Sie vor MITM-Angriffen geschützt sind, sollten Sie den öffentlichen Schlüssel des Hosts über einen vertrauenswürdigen Out-of-Band-Kanal überprüfen. Es gibt keine sichere Möglichkeit, sie zu automatisieren, ohne eine relativ komplizierte Infrastruktur für die Signierung von Schlüsseln einzurichten. - Eil


Antworten:


Stellen Sie das ein StrictHostKeyChecking Option zu noentweder in der Konfigurationsdatei oder via -o :

ssh -o StrictHostKeyChecking=no username@hostname.com


126
2018-04-16 04:34



Das lässt Sie in den mittleren Angriffen für den Menschen offen, wahrscheinlich keine gute Idee. - JasperWallace
@ JasperWallace, während dies in der Regel ein guter Rat ist, sollte der spezifische Anwendungsfall (Bereitstellen von Test-VMs und Senden von Befehlen an sie) sicher genug sein. - Massimo
Dies ergibt a Warning: Permanently added 'hostname,1.2.3.4' (RSA) to the list of known hosts. Um die Warnung zu vermeiden, und um zu vermeiden, dass der Eintrag zu irgendeiner bekannten_Hosts-Datei hinzugefügt wird, mache ich: ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR -o UserKnownHostsFile=/dev/null username@hostname.com - Peter V. Mørch
Downvoting, da dies die Frage nicht beantwortet und zu ernsthaften Sicherheitslücken führt. - marcv81
@Mnebuero: Wenn Sie sich Sorgen um die Sicherheit gemacht hätten, hätten Sie mit dieser Frage überhaupt nichts zu tun. Sie haben den richtigen Hostschlüssel vor sich, der von der Konsole des Systems stammt, mit dem Sie eine Verbindung herstellen wollten, und Sie würden dies bei der ersten Verbindung manuell überprüfen. Du würdest sicherlich "automatisch" nichts machen. - Ignacio Vazquez-Abrams


IMO, der beste Weg, dies zu tun, ist Folgendes:

ssh-keygen -R [hostname]
ssh-keygen -R [ip_address]
ssh-keygen -R [hostname],[ip_address]
ssh-keyscan -H [hostname],[ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [hostname] >> ~/.ssh/known_hosts

Das stellt sicher, dass es keine doppelten Einträge gibt, dass Sie sowohl für den Hostnamen als auch für die IP-Adresse abgedeckt sind, und hashed die Ausgabe, eine zusätzliche Sicherheitsmaßnahme.


209
2017-09-27 20:51



Warum brauchst du alle 3 ssh-keyscan's? Kannst du nicht mit der ersten umgehen, da es sowohl für Hostname als auch für IP funktioniert? - Robert
Können Sie sicher sein, dass das Gerät, das auf die ssh-keyscan Anfrage antwortet, wirklich das ist, mit dem Sie sprechen wollen? Wenn nicht, hast du dich einem mittleren Angriff geöffnet. - JasperWallace
@JasperWallace Ja, dafür brauchst du mindestens den Fingerabdruck oder besser den öffentlichen Schlüssel. In diesem Fall kannst du ihn direkt zu "known_hosts" hinzufügen, was diese Frage umstritten macht. Wenn Sie nur den Fingerabdruck haben, müssen Sie einen zusätzlichen Schritt schreiben, der den heruntergeladenen öffentlichen Schlüssel mit Ihrem Fingerabdruck verifiziert ...
Anrufe an ssh-keyscan fehlgeschlagen für mich, da mein Zielhost den Standardschlüsselschlüssel der Version 1 nicht unterstützt. Hinzufügen -t rsa,dsa an den Befehl behoben. - phasetwenty
Das ist wahrscheinlich eine schlechte Idee. Sie öffnen sich für einen Man-in-the-Middle-Angriff, indem Sie diese Schlüssel aktualisieren. Um doppelte Einträge zu vermeiden, überprüfen Sie den Rückgabestatus von ssh-keygen -F [address] stattdessen. medium.com/@wblankenship/... - retrohacker


Für die Faulen:

ssh-keyscan <host> >> ~/.ssh/known_hosts

78
2017-09-25 10:03



+1 dafür, dass du schuldig bist Vielen Dank. - SaxDaddy
Anfällig für MITM-Angriffe. Sie überprüfen nicht den Schlüsselfingerabdruck. - Mnebuerquo
@Mnebuero Du sagst was zu tun ist aber nicht wie, was hilfreich wäre. - Jim
@jameshfisher Ja ist es anfällig für MITM-Attacken, aber haben Sie jemals den RSA-Fingerabdruck, der Ihnen mit dem tatsächlichen des Servers angezeigt wurde, verglichen, als Sie das manuell gemacht haben? Nein? Also diese Antwort ist der Weg, es für dich zu tun. Wenn ja, sollten Sie diese Antwort nicht manuell und nicht mit anderen Sicherheitsmaßnahmen durchführen. - fivef
@Mnebuero Ich wäre wirklich froh, wenn Sie uns auch einen besseren Weg geben, dies zu handhaben, wenn wir ein Repo klonen müssen, indem wir Batch-Skripte verwenden, die nicht besucht werden, und wir wollen diese Eingabe umgehen. Bitte werfen Sie ein Licht auf eine echte Lösung, wenn Sie denken, dass dies nicht die richtige ist! - Waqas Shah


Wie erwähnt, wäre die Verwendung von Key-Scan der richtige und unaufdringliche Weg, dies zu tun.

ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts
mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts

Das oben genannte wird den Trick machen, nur dann einen Host hinzuzufügen, wenn er noch nicht hinzugefügt wurde. Es ist auch nicht Nebenläufigkeit sicher; Sie darf nicht führe das Snippet auf derselben Ursprungsmaschine mehrmals gleichzeitig aus, da die tmp_hosts-Datei durcheinandergeworfen werden kann, was letztendlich dazu führt, dass die known_hosts-Datei aufgebläht wird ...


38
2018-03-06 09:00



Gibt es eine Möglichkeit zu überprüfen, ob der Schlüssel in known_hosts ist Vor  ssh-keyscan? Der Grund ist, dass es einige Zeit und zusätzliche Netzwerkverbindung erfordert. - utapyngo
Die ursprüngliche Version des Posters hatte diese Datei cat ~/.ssh/tmp_hosts > ~/.ssh/known_hosts, aber eine nachfolgende Bearbeitung änderte es zu >>. Verwenden >> ist ein Fehler. Es vereitelt den Zweck der Eindeutigkeit in der ersten Zeile und veranlasst es, neue Einträge in die erste Zeile zu schreiben known_hostsJedes Mal wenn es läuft. (Habe gerade eine Änderung gepostet, um sie zurück zu ändern.) - paulmelnikow
Dies unterliegt denselben MITM-Angriffen wie die anderen. - Mnebuerquo
@utapyngo ssh-keygen -F gibt Ihnen den aktuellen Fingerabdruck. Wenn es mit Return-Code von 1 leer ist, dann haben Sie es nicht. Wenn es etwas druckt und der Rückgabecode 0 ist, ist es bereits vorhanden. - Rich L
Wenn Sie sich so sehr um MITM kümmern, DNSSEC- und SSHFP-Datensätze bereitstellen oder andere sichere Methoden zum Verteilen der Schlüssel verwenden, ist diese Kludglösung irrelevant. - Zart


Du könntest benutzen ssh-keyscan Befehl, um den öffentlichen Schlüssel zu greifen und an Ihren zu hängen known_hosts Datei.


18
2018-04-16 05:09



Stellen Sie sicher, dass Sie den Fingerabdruck überprüfen, um sicherzustellen, dass es sich um den richtigen Schlüssel handelt. Ansonsten öffnest du dich für MITM-Attacken. - Mnebuerquo
@Mnebuquo Fairer Punkt im allgemeinen Kontext, aber warum sollte jemand versuchen, programmatisch Schlüssel zu sammeln, wenn sie bereits wussten, was der richtige Schlüssel war? - Brian Cline
Dies ist nicht der Weg, es zu tun. MITM. - jameshfisher


So können Sie integrieren ssh-Schlüsselscan in dein Spiel:

---
# ansible playbook that adds ssh fingerprints to known_hosts
- hosts: all
  connection: local
  gather_facts: no
  tasks:
  - command: /usr/bin/ssh-keyscan -T 10 {{ ansible_host }}
    register: keyscan
  - lineinfile: name=~/.ssh/known_hosts create=yes line={{ item }}
    with_items: '{{ keyscan.stdout_lines }}'

6
2018-02-03 03:12



Laden Sie eine bekannte gültige Datei "known_hosts" hoch oder machen Sie ssh-keyscan und speichern Sie die Ausgabe in known_hosts, ohne Fingerabdrücke zu verifizieren? - Mnebuerquo
Dies ist einfach eine Dump-Ausgabe eines Keyscans, ja. In der Tat ist es das gleiche wie StrictHostKeyChecking = no, nur mit stillen known_hosts Aktualisierung, ohne mit ssh Optionen fummeln. Diese Lösung funktioniert auch nicht gut, da ssh-keyscan mehrere Zeilen zurückgibt, was dazu führt, dass diese Aufgabe immer als "geändert" markiert wird. - Zart
Dies ist nicht der Weg, es zu tun. MITM. - jameshfisher
@jameshfisher Ich würde mich sehr freuen, wenn Sie uns auch einen besseren Weg geben, dies zu handhaben, wenn wir einen Repo klonen müssen, indem wir Batch-Skripte verwenden, die nicht besucht werden, und wir diese Eingabe umgehen wollen. Bitte werfen Sie ein Licht auf eine echte Lösung, wenn Sie denken, dass dies nicht die richtige ist! Bitte lassen Sie uns wissen, wie Sie es machen, wenn Sie denken, dass dies nicht der richtige Weg ist! - Waqas Shah


Ich hatte ein ähnliches Problem und fand heraus, dass einige der bereitgestellten Antworten mich nur teilweise zu einer automatisierten Lösung brachten. Folgendes habe ich am Ende benutzt: hoffe es hilft:

ssh -o "StrictHostKeyChecking no" -o PasswordAuthentication=no 10.x.x.x

Es fügt den Schlüssel hinzu known_hosts und fragt nicht nach dem Passwort.


5
2017-10-21 17:27



Anfällig für MITM-Angriffe. Sie überprüfen nicht den Fingerabdruck. - Mnebuerquo
Niemand überprüft den Fingerabdruck. - Brendan Byrd
Dies ist nicht der Weg, es zu tun. MITM. - jameshfisher


Dies wäre eine vollständige Lösung, die nur zum ersten Mal den Host-Schlüssel akzeptiert

#!/usr/bin/env ansible-playbook
---
- name: accept ssh fingerprint automatically for the first time
  hosts: all
  connection: local
  gather_facts: False

  tasks:
    - name: "check if known_hosts contains server's fingerprint"
      command: ssh-keygen -F {{ inventory_hostname }}
      register: keygen
      failed_when: keygen.stderr != ''
      changed_when: False

    - name: fetch remote ssh key
      command: ssh-keyscan -T5 {{ inventory_hostname }}
      register: keyscan
      failed_when: keyscan.rc != 0 or keyscan.stdout == ''
      changed_when: False
      when: keygen.rc == 1

    - name: add ssh-key to local known_hosts
      lineinfile:
        name: ~/.ssh/known_hosts
        create: yes
        line: "{{ item }}"
      when: keygen.rc == 1
      with_items: '{{ keyscan.stdout_lines|default([]) }}'

5
2017-11-23 13:51



Dies ist nicht der Weg, es zu tun. MITM. - jameshfisher


Also, ich suchte nach einem banalen Weg, um die unbekannte manuelle manuelle Interaktion des Klonens eines Git Repos zu umgehen, wie unten gezeigt:

brad@computer:~$ git clone git@bitbucket.org: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)?

Merken Sie sich den RSA-Schlüssel-Fingerabdruck ...

Also, das ist eine SSH-Sache, das wird für Git über SSH funktionieren und nur SSH-bezogene Dinge im Allgemeinen ...

brad@computer:~$ 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 zuerst nmap auf Ihrem täglichen Treiber. nmap ist sehr hilfreich für bestimmte Dinge, wie das Erkennen offener Ports und das manuelle Überprüfen von SSH-Fingerabdrücken. Aber zurück zu dem, was wir tun.

Gut. Ich bin entweder an den verschiedenen Orten und Maschinen, die ich überprüft habe, kompromittiert - oder die plausiblere Erklärung, dass alles gut ist, ist, was passiert.

Dieser "Fingerabdruck" ist nur eine Zeichenfolge, die mit einem Einwegalgorithmus für unsere menschliche Bequemlichkeit verkürzt wird, wobei das Risiko besteht, dass mehr als eine Zeichenfolge in den gleichen Fingerabdruck aufgelöst wird. Es passiert, sie werden Kollisionen genannt.

Unabhängig davon, zurück zur ursprünglichen Zeichenfolge, die wir im Kontext unten sehen können.

brad@computer:~$ 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

Also haben wir im Vorfeld die Möglichkeit, vom ursprünglichen Gastgeber eine Form der Identifikation zu verlangen.

An diesem Punkt sind wir manuell genauso anfällig wie automatisch - die Zeichenfolgen stimmen überein, wir haben die Basisdaten, die den Fingerabdruck erzeugen, und wir könnten in Zukunft nach diesen Basisdaten fragen (um Kollisionen zu vermeiden).

Jetzt, um diese Zeichenfolge auf eine Weise zu verwenden, die die Frage nach der Authentizität eines Hosts verhindert ...

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

brad@computer:~$ 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 erscheint ärgerlich - aber Sie können sie mit einer einfachen Weiterleitung über die Konvention ">" oder ">>" loswerden.

Da ich mein Bestes getan habe, um unbefleckte Daten zu erhalten, die zur Identifizierung eines "Hosts" und eines Vertrauens verwendet werden, füge ich diese Kennung meiner Datei "known_hosts" in meinem ~ / .ssh-Verzeichnis hinzu. Da es jetzt als ein bekannter Gastgeber identifiziert wird, werde ich nicht die oben erwähnte Eingabeaufforderung bekommen, als Sie ein Junge waren.

Danke, dass du bei mir geblieben bist, hier gehst du. Ich füge den Bitbucket-RSA-Schlüssel hinzu, damit ich dort als Teil eines CI-Workflows 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 für heute eine Jungfrau. Sie können dasselbe mit github tun, indem Sie ähnliche Richtungen zu Ihrer eigenen Zeit befolgen.

Ich habe so viele Stapelüberlaufpfosten gesehen, die dir sagen, dass du den Schlüssel ohne irgendeine Überprüfung programmatisch hinzufügen sollst. Je mehr Sie den Schlüssel von verschiedenen Computern in verschiedenen Netzwerken überprüfen, desto mehr Vertrauen können Sie haben, dass der Host derjenige ist, von dem er sagt, dass er es ist - und das ist das Beste, was Sie von dieser Sicherheitsebene erwarten können.

FALSCH ssh -OstrictHostKeyChecking = kein Hostname [Befehl]

FALSCH ssh-keyscan -t rsa -H Hostname >> ~ / .ssh / bekannte_Hosts

Tun Sie bitte keines der obigen Dinge. Sie haben die Möglichkeit, Ihre Chancen zu erhöhen, dass jemand Ihre Datenübertragungen über einen Mann im mittleren Angriff abhören kann - nutzen Sie diese Gelegenheit. Der Unterschied besteht darin, dass der RSA-Schlüssel, den Sie haben, der echte Server ist, und Sie wissen nun, wie Sie diese Informationen erhalten, um sie zu vergleichen, damit Sie der Verbindung vertrauen können. Denken Sie daran, dass mehr Vergleiche von verschiedenen Computern und Netzwerken Ihre Fähigkeit erhöhen, der Verbindung zu vertrauen.


4
2017-10-05 21:18



Ich denke, das ist die beste Lösung für dieses Problem. Seien Sie jedoch sehr vorsichtig, wenn Sie Nmap auf so etwas wie Amazon EC2 verwenden. Ich habe eine Warnung über den Port-Scan erhalten, den Nmap ausführt! Füllen Sie ihr Formular aus, bevor Sie Portscanning durchführen! - Waqas Shah
...Gut ja. Ich weiß nicht, warum Sie den Port-Scan von EC2 machen würden. Wenn Sie in Ihrem Konto angemeldet sind, können Sie nur die Schlüssel von den tatsächlichen Computern abrufen. Dies ist mehr für Maschinen, die Sie nicht kontrollieren können. Ich würde davon ausgehen, dass Sie eine lokale Maschine nicht AWS-Port-Scan-Einschränkungen unterliegen zu verwenden. Aber, wenn Sie in dieser Randfallsituation sind, in der Sie nmap mit AWS ausführen müssen, nehme ich an, dass diese Warnung hilfreich wäre. - BradChesney79
Verwenden Sie nmap, um den SSH-Hostschlüssel von Ihrer Arbeitsstation zu lesen, und vertrauen Sie diesem Wert dann nicht anders als die Verbindung über SSH, wenn StructHostKeyChecking deaktiviert ist. Es ist genauso anfällig für einen Man-in-the-Middle-Angriff. - Micah R Ledbetter
... @ MicahRLedbetter, weshalb ich vorgeschlagen habe, dass "mehr Vergleiche von verschiedenen Computern und Netzwerken normalerweise Ihre Fähigkeit erhöhen werden, der Verbindung zu vertrauen". Aber das ist mein Punkt. Wenn Sie Ihren Ziel-Host nur anhand einer bestimmten Umgebung testen, wie würden Sie dann von Diskrepanzen wissen? Hattest du bessere Vorschläge? - BradChesney79
Das ist Sicherheitstheater. Etwas Kompliziertes machen, um den Anschein größerer Sicherheit zu erzeugen. Es spielt keine Rolle, wie viele verschiedene Methoden Sie verwenden, um den Host nach seinem Schlüssel zu fragen. Zum Beispiel, wenn Sie dieselbe Person mehrmals fragen, ob Sie ihnen vertrauen können (vielleicht rufen Sie an, mailen, schreiben und mailen). Sie werden immer Ja sagen, aber wenn Sie die falsche Person fragen, spielt es keine Rolle. - vastlysuperiorman


Ich mache ein One-Liner-Skript, ein bisschen lang, aber nützlich, um diese Aufgabe für Hosts mit mehreren IPs zu machen dig und bash

(host=github.com; ssh-keyscan -H $host; for ip in $(dig @8.8.8.8 github.com +short); do ssh-keyscan -H $host,$ip; ssh-keyscan -H $ip; done) 2> /dev/null >> .ssh/known_hosts

3
2018-04-18 21:01





Folgendes vermeidet doppelte Einträge in ~ / .ssh / known_hosts:

if ! grep "$(ssh-keyscan github.com 2>/dev/null)" ~/.ssh/known_hosts > /dev/null; then
    ssh-keyscan github.com >> ~/.ssh/known_hosts
fi

3
2017-07-02 11:41



Dies ist nicht der Weg, es zu tun. MITM. - jameshfisher