From: "Ivan C." Date: 2011-10-06T17:11:06+09:00 Subject: Re: How to use 'net/ssh' to sudo su - unknown wrote in post #1025130: > On Wed, Oct 5, 2011 at 4:45 AM, Ivan C. wrote: >> permission. My guess is the sudo su - does not actually works. > A simpler test case: > ssh = Net::SSH.start("host", "user", :password =>"xxxx") > puts ssh.exec!('ls -la /root') > puts ssh.exec!('sudo ls -la /root') > > Running sudo over ssh generally requires that a pseudo-tty be allocated: > > $ ssh XXX ls -la /root > ls: /root: Permission denied > > $ ssh XXX sudo ls -la /root > sudo: sorry, you must have a tty to run sudo > > $ ssh -t XXX sudo ls -la /root > drwxr-x--- 7 root root 4096 Sep 22 12:20 . > drwxr-xr-x 25 root root 4096 Sep 16 14:49 .. > -rw------- 1 root root 1856 Jun 8 14:41 anaconda-ks.cfg Well, when i execute puts ssh.exec!('ssh -t user@host ls -la /root') It gives: Pseudo-terminal will not be allocated because stdin is not a terminal. Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,gssapi-with-mic,password). After i google around and execute this puts ssh.exec!('ssh -t -t user@host ls -la /root') It gives: Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,gssapi-with-mic,password). Seems like it's requesting password. How do send passsord? -- Posted via http://www.ruby-forum.com/.