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 generateOfflineSig
sieht 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 ls
auf 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.
/etc/sudoers
Syntax ist nicht 100% sicher , aber meine Datei enthält die Zeile# %wheel ALL=(ALL) NOPASSWD: ALL
. Vielleicht sollte Ihre Linie seinjeff ALL=(ALL) NOPASSWD: ALL
?Antworten:
Es scheint, als hätte ich einen "Tippfehler" in der
/etc/sudoers
Datei ...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.
quelle