2012-04-25 22 views
78

Mam skrypt uruchamiający inny skrypt SSH na zdalnym serwerze za pomocą sudo. Jednak po wpisaniu hasła pojawia się na terminalu. (W przeciwnym razie to działa dobrze)właściwy sposób sudo nad ssh

ssh [email protected] "sudo script" 

Jaki jest właściwy sposób, aby to zrobić, więc mogę wpisać hasło dla sudo przez SSH bez hasła pojawiające się podczas pisania?

+1

jak dla mnie powodem do poszukiwania sposobu sudoing przez ssh było to, że nie działa, gdy próbuje coś takiego 'ssh <[email protected]> sudo

-3

zależności od użytkowania, miałem sukces z następujących czynności:

ssh [email protected] "script" 

Spowoduje to wyświetlenie monitu o hasło roota, a następnie wykonanie polecenia poprawnie.

+18

Yikes, SSH jako root? To zły pomysł z różnych powodów. – darkfeline

+11

Pamiętaj, że ssh nie jest telnetem. Nie jest bardziej niebezpieczny dla ssh jako root niż ssh jako inny użytkownik i uruchamia sudo. Twoje hasło jest szyfrowane w ten sam sposób przez połączenie ssh. –

+17

Stéphane jest absolutnie poprawny, jeśli chodzi o zabezpieczenia hasłem. Jednakże, używając root zamiast sudo, tracisz ścieżkę audytu, która idzie z sudo. Ponadto dostęp root może nie być dostępny. – djeikyb

0

Najlepszym sposobem jest ssh -t [email protected] "sudo <scriptname>", na przykład ssh -t [email protected] "sudo reboot". on poprosi o hasło dla użytkownika, a następnie korzeń (ponieważ jesteśmy uruchomienie skryptu lub polecenia z uprawnieniami administratora.

Mam nadzieję, że to pomogło i oczyścił swoje wątpliwości.

0

Zakładając chcesz nie pytanie o hasło :

ssh $HOST 'echo $PASSWORD | sudo -S $COMMMAND' 

Przykład

ssh [email protected] 'echo secret | sudo -S echo hi' # outputs 'hi' 
Powiązane problemy