Verwenden Sie sudo inkonjunction mit dem ssh-Schlüssel des normalen Benutzers

524
jamjam

Ich möchte einen Befehl ausführen, für den root-Rechte erforderlich sind, also verwende ich sudo.

sudo puppet apply /etc/puppet/manifests/site.pp 

Dieser Befehl beinhaltet das Klonen eines privaten Github-Repos mit ssh. Das funktioniert nur, wenn ich meine ssh zum root-Benutzer hinzufüge.

Ich möchte meine ssh nicht zum root-Benutzer hinzufügen. Wie kann ich sudoden ssh-Schlüssel für den Ubuntu-Benutzer verwenden, aber immer noch verwenden?

1

2 Antworten auf die Frage

0
terdon

Ich habe diese Antwort auf Serverfehler gefunden. Im Wesentlichen müssen Sie diese Zeile zu /etc/sudoers(use visudo) hinzufügen :

Defaults env_keep+=SSH_AUTH_SOCK 

Sie sollten dann in der Lage sein, Ihren Befehl normal auszuführen:

sudo puppet apply /etc/puppet/manifests/site.pp 
Das funktioniert bei mir nicht. jamjam vor 11 Jahren 0
@jamjam Versuchen Sie `sudo -E` und probieren Sie auch einige andere Lösungen für die verknüpfte Antwort aus. terdon vor 11 Jahren 0
0
jamjam

Es stellte sich heraus, dass es eine ziemlich einfache Lösung dafür gab.

Durch das Hinzufügen einer Option -u kann ich einen Benutzer angeben.

sudo -u ubuntu puppet apply /etc/puppet/manifests/site.pp 

Jetzt wird der ssh-Schlüssel für diesen Benutzer verwendet.