Ich suchte nach einer Methode, um den Zugriff auf ein privates Debian-Repository einzuschränken und mich nicht interaktiv bei ihm authentifizieren zu können (dh mithilfe eines Skripts).
Der nützlichste Artikel, den ich gefunden habe, ist tatsächlich einer von der Debian-Verwaltungssite, aber die sichere Methode verwendet ssh und öffentliche / private Schlüssel. Es funktioniert hervorragend, aber der öffentliche Schlüssel jedes Hosts muss sich in der Remote-Datei authorized_keys befinden, um sich erfolgreich zu authentifizieren. Es sagt nichts über die Bereitstellung eines Passworts für ssh: // aus, aber ich denke, es sollte möglich sein.
Haben Sie andere Alternativen ausprobiert (z. B. ftps)?
Danke im Voraus
Antworten:
Wenn Sie
apt-get
Ihre Server immerapt-get
manuell ausführen (keine automatischen Befehle, die von Cron gestartet werden), können Sie die Weiterleitung von SSH- Agenten in Betracht ziehen . Dadurch wird vermieden, dass pro verwaltetem Server ein öffentliches / privates Schlüsselpaar verwaltet werden muss, und es ist wahrscheinlich sicherer, als auf jedem Server private Schlüssel zu belassen.Erstkonfiguration - Stellen Sie eine Verbindung zu den Servern her, die Sie verwalten möchten, und fügen Sie Folgendes hinzu
/etc/apt/sources.list
(in diesem Beispiel wird davon ausgegangen, dass Ihre Server eine Verbindung zummanager
Konto herstellen sollen):Erstellen Sie ein Paar privater / öffentlicher Schlüssel auf Ihrem eigenen Computer, beispielsweise mit Ihrem Login
johndoe
(vorausgesetzt, Ihr Computer läuft unter Debian: Wenn nicht, können Sie dies von einem Debian-Server aus tun, der für die Verwaltung vorgesehen ist):Kopieren Sie Ihren öffentlichen Schlüssel auf den Repository-Server in
/home/manager/.ssh/authorized_keys
:Einmal pro Verwaltungssitzung
Starten Sie den SSH-Agenten auf Ihrem Computer, indem Sie Folgendes eingeben:
Fügen Sie dem Agenten Ihren Schlüssel hinzu (dies erfordert Ihre Passphrase):
Server verwalten
Stellen Sie eine Verbindung zu dem Server her, den Sie verwalten möchten
ssh -A
(-A
aktiviert die Agentenweiterleitung):Wechseln Sie zu root (wenn Sie verwenden möchten, müssen
sudo
Sie konfigurieren,/etc/sudoers
sonstsudo
wird die Agentenweiterleitung unterbrochen, lesen Sie dies ):Dank der Agentenweiterleitung sollten Sie nun in der Lage sein, mithilfe von ssh eine Verbindung zum Manager-Konto des Repositorys herzustellen, ohne Ihr Kennwort erneut eingeben zu müssen. Daher
apt-get
sollte gut funktionieren:Beenden Sie Ihre Verwaltungssitzung
Wenn Sie die Verwaltung Ihrer Server abgeschlossen haben, entfernen Sie Ihre Schlüssel vom Agenten:
Vorteile
ssh-ask
jeden Versuch, Ihren Schlüssel zu verwenden, akzeptieren / ablehnen.quelle
Eine Möglichkeit, dies zu tun, besteht darin, bestimmten IP-Adressen den Zugriff auf das Repository zu ermöglichen. Dies funktioniert sehr gut für LAN und VPN.
Einfach und effizient.
quelle
Die Lösung für öffentliche / private Schlüssel von ssh + ist gar nicht so schlecht:
ssh-keygen
dann einssh-copy-id [email protected]
bearbeiten
/etc/apt/sources.list
und etwas hinzufügen wie:Zugegeben, Sie müssen den öffentlichen Schlüssel jedes Servers in die
~/.ssh/authorized_keys
Datei auf dem Server einfügen, aber es ist nicht so kompliziert (siehe oben) und gibt Ihnen die Kontrolle darüber, welche Server Sie zu einem bestimmten Zeitpunkt zulassen oder nicht (Sie können einen Schlüssel unter entfernen) jederzeit inauthorized_keys
).quelle
Sie können einen https-Zugriff auf Ihr Repository einrichten, der durch Login / Passwort (Basisauthentifizierung) gesichert ist. Das Problem ist, dass Sie das Klartext-Login / Passwort eingeben müssen
/etc/apt/sources.list
(Hinweis: Es gibt einen Patch , mit dem das Login / Passwort/root/.netrc
stattdessen eingegeben werden kann ).quelle
Der Link in Ihrer Frage zeigt mehrere Methoden. Sie möchten die Nummer 2, https + Basisauthentifizierung.
quelle