Also suchte ich nach einem einfachen Weg, um die unbekannte 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)?
Beachten Sie den Fingerabdruck des RSA-Schlüssels ...
Das ist also eine SSH-Sache, das funktioniert für Git über SSH und nur für 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 zunächst 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. Entweder bin ich an den verschiedenen Stellen und Maschinen, die ich überprüft habe, kompromittiert - oder die plausibelere Erklärung dafür, dass alles gut gelaunt ist, ist das, was passiert.
Dieser 'Fingerabdruck' ist nur eine Zeichenfolge, die aus Gründen der menschlichen Bequemlichkeit mit einem Einwegalgorithmus verkürzt wurde, wobei das Risiko besteht, dass mehr als eine Zeichenfolge in den gleichen Fingerabdruck aufgelöst wird. Es kommt vor, sie werden Kollisionen genannt.
Unabhängig davon, zurück zur ursprünglichen Zeichenfolge, die wir unten im Kontext 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
Wir haben also vorab die Möglichkeit, den ursprünglichen Gastgeber um eine Form der Identifizierung zu bitten.
Zu diesem Zeitpunkt sind wir manuell genauso anfällig wie automatisch - die Zeichenfolgen stimmen überein, wir haben die Basisdaten, die den Fingerabdruck erstellen, und wir könnten diese Basisdaten in Zukunft anfordern (um Kollisionen zu verhindern).
Verwenden Sie diese Zeichenfolge nun so, dass Sie nicht nach der Authentizität eines Hosts fragen müssen ...
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 ist ärgerlich - aber Sie können sie mit einer einfachen Umleitung über die Konvention ">" oder ">>" entfernen.
Da ich mein Bestes getan habe, um unversehrte Daten zu erhalten, mit denen ein "Host" und eine Vertrauensstellung identifiziert werden können, füge ich diese Identifikation meiner Datei known_hosts in meinem ~ / .ssh-Verzeichnis hinzu. Da es nun als bekannter Host identifiziert wird, erhalte ich als Jugendlicher nicht die oben erwähnte Aufforderung.
Danke, dass du bei mir bleibst. Ich füge den Bitbucket-RSA-Schlüssel hinzu, damit ich dort im Rahmen eines CI-Workflows auf nicht interaktive Weise mit meinen Git-Repositorys 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 heute Jungfrau. Sie können dasselbe mit github tun, indem Sie in Ihrer Freizeit ähnlichen Anweisungen folgen.
Ich habe so viele Stapelüberlaufpfosten gesehen, die Sie angewiesen haben, den Schlüssel blind ohne Prüfung programmgesteuert hinzuzufügen. Je mehr Sie den Schlüssel von verschiedenen Computern in verschiedenen Netzwerken überprüfen, desto mehr Vertrauen können Sie in den Host haben, von dem er behauptet wird - und das ist das Beste, was Sie von dieser Sicherheitsebene erhoffen können.
FALSCH
ssh -oStrictHostKeyChecking = kein Hostname [Befehl]
FALSCH
ssh-keyscan -t rsa -H Hostname >> ~ / .ssh / known_hosts
Tun Sie bitte keines der oben genannten Dinge. Sie haben die Möglichkeit, die Wahrscheinlichkeit zu erhöhen, dass nicht jemand Ihre Datenübertragungen abhört, wenn sich ein Mann in der Mitte des Angriffs befindet. Ergreifen Sie diese Gelegenheit. Der Unterschied besteht buchstäblich darin, dass der RSA-Schlüssel, über den Sie verfügen, der echte Server ist. Jetzt wissen Sie, wie Sie diese Informationen abrufen können, um sie zu vergleichen, damit Sie der Verbindung vertrauen können. Denken Sie daran, dass mehr Vergleiche von verschiedenen Computern und Netzwerken in der Regel Ihre Fähigkeit erhöhen, der Verbindung zu vertrauen.