Systemweite Known-Hosts-Datei?

Systemweite Known-Hosts-Datei?

Ich versuche, ein GitHub zu machen-git ziehenvon einem PHP-Skript als WWW-Data-Benutzer aus und erhalte die Meldung „Hostschlüsselüberprüfung fehlgeschlagen“. Mein Hauptbenutzer hat den Hostschlüssel registriert, aber mein WWW-Data nicht, da er nicht einmal Zugriff auf das Verzeichnis ~/.ssh hat.

Gibt es unter Ubuntu 18.04 noch eine systemweite known-hosts-Datei? Ich nehme an, es wäre nicht sicher, dem www-data-Benutzer Zugriff auf meine~/.ssh-Verzeichnis?

Antwort1

Wie @GMaster vorgeschlagen hat, scheint die Verwendung von HTTPS anstelle von SSH für einen automatisierten Pull die sinnvollste Wahl zu sein. Wenn Sie jedoch unbedingt das SSH-Protokoll verwenden müssen (warum?), haben Sie einige Optionen für den Umgang mit known_hostsAnmeldeinformationen:

  • Erstellen Sie den ~/.sshBaum, einschließlich eines vorab ausgefüllten known_hosts, im www-dataHome-Verzeichnis von (in meinem System ist es /var/www, aber überprüfen Sie Ihr Verzeichnis in /etc/passwd). Sie können die Datei selbst erstellen, indem Sie eine Verbindung herstellen und den Hostschlüssel manuell überprüfen. Stellen Sie einfach sicher, dass solche Dateien und Verzeichnisse die richtigen Berechtigungen (normalerweise 0700/0600) und Eigentümer haben.

  • Bewahren Sie diese Datei an einem anderen Ort auf (mit den entsprechenden Berechtigungen) und verweisen Sie darauf mit-o UserKnownHostsFile=/path/to/known_hosts

  • Probieren Sie für beide oben genannten Ansätze -o StrictHostKeyCheckingverschiedene Optionen aus und -o UpdateHostKeysfinden Sie ein Gleichgewicht zwischen Sicherheit und Komfort.

  • Als letzte Möglichkeit können Sie die Hostschlüsselüberprüfung für WWW-Daten entweder in /var/www/.ssh/configoder mit Befehlszeilenoptionen vollständig deaktivieren -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null. Seien Sie sich jedoch der schwerwiegenden Sicherheitsauswirkungen bewusst, die dies mit sich bringt.

Und, um zu bestätigen, was Sie bereits vermutet haben: Geben Sie unter keinen Umständen www-data (oder einem anderen) Benutzer Zugriff auf Ihre ~/.ssh. Denken Sie daran, IhrePrivatSchlüssel sind auch da!

Antwort2

Ja, es gibt tatsächlich eine systemweit bekannte Hosts-Datei, die standardmäßig ist /etc/ssh/ssh_known_hosts. Sie können ausführen man ssh_configund danach suchen, GlobalKnownHostsFileum die Standardeinstellung auf Ihrem System anzuzeigen. Sie können den Wert dieser Option auch wie gewohnt (mit -o) ändern, wenn Sie möchten.

verwandte Informationen