Wie aktiviere ich Sudo-Befehle über SSH, ohne nach einem Passwort zu fragen?

13

Ich habe Server A und Server B (beide Ubuntu 10.04 LTS), die unterschiedliche Aufgaben ausführen. Server A muss Server B anstoßen, der eine Datei generiert und diese nach Abschluss an Server A zurücksendet. Dies ist alles intern und ich mache mir keine allzu großen Sorgen um Sicherheitsfragen. Der SSH-Schlüsselaustausch wird bereits zwischen den Servern A und B durchgeführt und funktioniert einwandfrei.

Auf Server B generateOfflineSigsieht das Skript so aus

#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp

Auch auf Server B hat visudo diesen Eintrag:

jeff ALL=NOPASSWD: ALL

Was funktioniert, wenn ich sudo lsauf Server B ausführe ... kein Passwort gefragt.

Leider fragt SSH auf Server A immer nach einem Passwort:

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:

Irgendwelche Ideen? Dieser Vorgang kann nicht durch Passworteingabe unterbrochen werden.

Jeff
quelle
Die /etc/sudoersSyntax ist nicht 100% sicher , aber meine Datei enthält die Zeile # %wheel ALL=(ALL) NOPASSWD: ALL. Vielleicht sollte Ihre Linie sein jeff ALL=(ALL) NOPASSWD: ALL?
Snapshoe
Muss nicht der gesamte Remote-Befehl in Anführungszeichen stehen? Sie können das Skript auf Sever A
TheLQ
Eigentlich ... ich denke, Snapshoe hat etwas vor. Ich werde meine eigene Frage etwas später beantworten ...
Jeff

Antworten:

16

Es scheint, als hätte ich einen "Tippfehler" in der /etc/sudoersDatei ...

jeff ALL=NOPASSWD: ALL

musste ganz am Ende der Datei sein. In der Ubuntu-Hilfe wird nur " Hinzufügen (...) zum ENDE der Datei" angezeigt (wenn nicht am Ende, kann dies durch spätere Einträge aufgehoben werden).

Danach wird das Passwort weder lokal noch über SSH nach "jeffs sudo-Befehlen" gefragt.

Jeff
quelle