
Ich erstelle ein Bash-Skript, um einen neuen Server bereitzustellen, auf dem ich eine Webanwendung bereitstellen kann. Dabei muss ich GitHub immer als bekannten Host angeben . Wie kann ich diesen Prozess in einem Bash-Skript automatisieren und idempotent ausführen?ssh [email protected]
Antwort1
Der einfache Weg wäre, so etwas zu tun.
ssh-keyscan remote_server >>~/.ssh/known_hosts
Wenn diese Box ganz neu ist, müssen Sie möglicherweise auch das Verzeichnis erstellen, ~/.ssh
bevor Sie ausführenSSH-Schlüsselscan.
Beachten Sie, dass ssh-keyscan eine beliebige Anzahl von Hostnamen annehmen kann. Es werden alle verfügbaren Schlüssel abgerufen.
Antwort2
Versuchen Sie, die Annahme des neuen Schlüssels zu automatisieren? Wenn ja, könnten Sie -oStrictHostKeyChecking=no verwenden.
Dies ist jedoch keine gute Idee, da Sie nun Man-in-the-Middle-Angriffen völlig ausgesetzt sind.
Eine bessere Option wäre, einfach eine known_hosts-Datei zu verwalten und diese Datei wiederzuverwenden, wenn Sie neue Server bereitstellen. Speichern Sie sie auf GitHub und schreiben Sie ein einfaches Skript, um diese Datei herunterzuladen, bevor Sie sich per SSH bei GitHub anmelden.
Die strenge Host-Key-Prüfung ist eine gute Sache.
Antwort3
Ich bin nicht sicher, ob ich die Frage verstehe, aber ich glaube, Sie möchten die known_host-Eingabeaufforderung ignorieren oder vollständig vermeiden. In diesem Fall:
ssh -o StrictHostKeyChecking=nein
oder andere Vorschläge unter:http://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/