Ich schreibe ein Skript, das sich bei einer Reihe von Remotecomputern anmeldet und auf ihnen einen Befehl ausführt. Ich habe Schlüssel eingerichtet, damit der Benutzer, der das Skript ausführt, nicht das Kennwort jedes Computers eingeben muss, sondern nur die Passphrase am Anfang des Skripts eingeben muss.
Das Problem ist, dass der Befehl auf den Remotecomputern ausgeführt werden muss sudo
. Gleichzeitig besteht der Sinn des Skripts darin, den Benutzer von der mehrfachen Eingabe von Passwörtern zu befreien. Gibt es eine Möglichkeit, die Eingabe des Passworts für zu vermeiden sudo
? Das Ändern der Berechtigungen des Befehls auf den Remotecomputern ist keine Option.
/etc/sudoers
und es kann auch durch Ausführen bearbeitet werdensudo /usr/sbin/visudo
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wesho,
Sie können das tun, was DaDaDom gesagt hat (es wird funktionieren und es ist einfach), oder Sie möchten Ihr Setup mithilfe eines PAM-Moduls namens pam-ssh-agent-auth verbessern .
Der Prozess für Debian / Ubuntu-Systeme ist ziemlich einfach:
Das Bearbeiten der Sudo-Konfiguration:
Fügen Sie Folgendes hinzu:
Fahren Sie fort, indem Sie die sudo PAM-Einstellungen ändern:
Fügen Sie die Auth- Zeile direkt über den 2 vorhandenen @ include- Zeilen hinzu:
Voilà!
sudo ohne Authentifizierung, aber mit SSH-Agent für eine starke Authentifizierung, anstatt einfach das Kennwort aus der sudo-Konfiguration zu entfernen.
quelle
authorized_keys
MUSS gesperrt sein, damit nur root es ändern kann - andernfalls können Sie das Passwort genauso gut deaktivieren.Die Antwort von Andre de Miranda bietet eine gute Lösung mit pam_ssh_agent_auth , aber Teile sind veraltet. Insbesondere die
/etc/pam.d/sudo
Anweisungen bei Verwendung vieler aktueller Linux-Versionen.Wenn Sie Ubuntu 12.04 präzise ausführen, habe ich den Prozess tatsächlich vereinfacht, indem ich einen pam_ssh_agent_auth-Build aus einem ppa: ppa: cpick / pam-ssh-agent-auth bereitgestellt habe .
Sie können das Paket installieren, indem Sie Folgendes ausführen:
Wenn Sie dieses PAM-Modul nach der Installation mit sudo verwenden möchten, müssen Sie die Einstellungen und die PAM-Konfiguration von sudo konfigurieren. In Ubuntu 12.04 können Sie dies genau tun, indem Sie die folgenden zwei Dateien erstellen:
/etc/sudoers.d/pam-ssh-agent-auth:
/etc/pam.d/sudo:
Wenn Sie Chef verwenden, kann der oben beschriebene Vorgang mit meinem Kochbuch automatisiert werden, das sich an einem der beiden folgenden Speicherorte befindet:
https://github.com/cpick/pam-ssh-agent-auth
http: //community.opscode .com / cookbooks / pam-ssh-agent-auth .
Das
files
Verzeichnis des Kochbuchs enthält die oben beschriebenen/etc/pam.d/sudo
und/etc/sudoers.d/pam-ssh-agent-auth
Dateien, die mit Ubuntu 12.04 präzise funktionieren und ein hilfreicher Ausgangspunkt für die Verwendung anderer Versionen / Distributionen sein sollten.quelle