Die Datei known_hosts sieht folgendermaßen aus: -
[localhost]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpU
[10.18.60.198]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9
// key are trimmed at the end
Diese Schlüssel werden über die Eclipse IDE hinzugefügt. Möchten Sie wissen, welche anderen Möglichkeiten es gibt, Hosts (IPs) und ihre Schlüssel zur Datei ssh/known_hosts hinzuzufügen?
Spezifisch: - So fügen Sie hinzussh-dssSchlüssel für jeden Host (IP) in der Datei known_hosts.
BEARBEITEN:-
Ich verwende JBoss BRMS, das Git für BRMS-Projekte verwendet. Beim Klonen des BRMS-Projekts in der Eclipse IDE über Git tritt daher folgender Fehler auf
Die Authentizität des Hosts „localhost“ kann nicht festgestellt werden.
DSA-Schlüsselfingerabdruck ist e2:2c:62 //getrimmt.
Möchten Sie die Verbindung wirklich fortsetzen?
Und dann wird der SSH-DSS-Schlüssel automatisch zur Datei known_hosts hinzugefügt.
Wo finde ich diesen Schlüssel und füge ihn manuell zur knownhosts-Datei hinzu?
Antwort1
Das Format von ~/.ssh/known_hosts
wird von OpenSSH definiert. Andere Software könnte entweder OpenSSH aufrufen (dassshBefehl) oder verfügt möglicherweise über eigene Implementierungen, die nicht unbedingt 100 % kompatibel sind.
Das OpenSSH known_hosts Format ist beschrieben in derman-Seite für sshd(8), unter „ssh_known_hosts-Dateiformat“. Dort steht, dass es sich um eine Textdatei mit einer Zeile pro Host-Schlüssel-Paar handelt:
Jede Zeile in diesen Dateien enthält die folgenden Felder: Markierungen (optional), Hostnamen, Schlüsseltyp, base64-codierter Schlüssel, Kommentar. Die Felder sind durch Leerzeichen getrennt. […] Hostnamen sind eine durch Kommas getrennte Liste von Mustern ('
*
' und '?
' fungieren als Platzhalter); jedes Muster wird wiederum mit dem Hostnamen abgeglichen. […] Ein Hostname oder eine Adresse kann optional in Klammern von '[
' und ']
' eingeschlossen werden, gefolgt von ':
' und einer nicht standardmäßigen Portnummer.
Um automatisch einen Schlüssel für einen neuen Host hinzuzufügen, führen Sie einfach eine SSH-Verbindung zu ihm durch.
Um manuell einen Schlüssel für einen neuen Host hinzuzufügen, 1) öffnen Sie die Datei known_hosts in Ihrem Texteditor und 2) fügen Sie den Schlüssel für einen neuen Host im gleichen Format hinzu. (Der Schlüssel muss mit dem Host übereinstimmen, mit dem Sie eine Verbindung herstellen. Sie können einen Host mit nach seinem Schlüssel abfragen ssh-keyscan -t <type> <address>
.)
So fügen Sie einen Schlüssel hinzu füralleHosts, verwenden Sie ein *
Muster als Hostnamen, das mit allen Hostnamen und Adressen übereinstimmt. Um einen Schlüssel für alle Hosts hinzuzufügenan einem bestimmten Port[*]:8001
, als Hostnamen verwenden .
Antwort2
Sie müssen beispielsweise hinzufügen127.0.0.1an bekannte Hosts:
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts
Als Docker-Datei verwende ich:
RUN apt-get update \
&& apt-get install -y \
ssh \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p ~/.ssh/ \
&& ssh-keyscan -H 192.168.12.31 >> ~/.ssh/known_hosts
Wo apt-get install -y ssh
- möglichst nutzenSSH-Schlüsselscanin der Befehlszeile, dann rm -rf /var/lib/apt/lists/*
- bereinigen Sie die heruntergeladenen Paketinformationen mit apt.
Antwort3
Versuchen Sie, sich per SSH mit Ihrem Ziel anzumelden, und geben Sie „Yes“ ein, wenn Sie aufgefordert werden, den Schlüssel zu speichern.