[MOTIVATION]
Sometimes we want to use ssh command to remote machine for some operations,
but it's inconvenient that we need to key the password for "sudo" command.
Especially when we need to create a shell script. We can't key the password directly on it.
[METHOD]
Step:
1. On the remote machine, execute
$sudo visudo
and add following line at the end( Change "hadoop" to your username)
hadoop ALL=(ALL) NOPASSWD: ALL
and Ctrl + X to leave
type Y
press ENTER to save and leave
2. Return and try
$ ssh -t user@hostname "sudo ls"
for example
$ ssh -t hadoop@192.168.100.1 "sudo ls"
If you did it right, it just doesn't need to key the password again!
(And we could use it on shell script directly ~)
[note]
Why we use "-t" for ssh here is that it may cause:
sudo: no tty present and no askpass program specified
[REFERENCE]
http://jeromejaglale.com/doc/unix/ubuntu_sudo_without_password
http://superuser.com/questions/117870/ssh-execute-sudo-command