Link to home
Start Free TrialLog in
Avatar of eng-sabri
eng-sabriFlag for Saudi Arabia

asked on

How to SSH interactive Session In ruby Ruby

Good day everyone

I need to execute command on linux machine this command is interactive
command.
Interactive command means require input like [yes , no] or password
twice

my real case is.
I create a script execute commands and get the outputs successfully.
but some servers has Loging password expired so I need to interact with
server to send the current password + the new password(twice)

----------------------------
ssh userName@10.0.0.243
userName@10.0.0.243's password:
You are required to change your password immediately (password aged)
Last login: Sun Aug  7 13:15:40 2011 from 10.0.0.28
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user userName.
Changing password for userName
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
----------------------------

Notes::
- I'm using Ruby 1.9.2
- I've no problem in executing command in normal case
- please, I have to avoid workarounds like (echo "pass" | ssh -S) to
make me pass any other interactive situations.
- I'm using 'net/ssh' libs
- The Script is Attached
http://king-sabri.net/files/LinuxHWScanner.rb
- I tried "net/ssh/telnet" and it doesn't help
- Some advises tell useing 'rake/remote_task' is the solution but I can't understand how it works in my case

if you need more simplicity, here a simple code if you make it works I thing it'll solve my previous issue
 
require 'net/ssh'

  host = "10.0.0.106"
  port = 22		# SSH port
  user = 'root'   	# username
  pass = "123123"	# password

Net::SSH.start( host,user,:password => pass, :port=> port , :verbose => :error ) do |session|

 puts session.exec!("passwd root")
end

Open in new window





please I need it urgently



ASKER CERTIFIED SOLUTION
Avatar of eng-sabri
eng-sabri
Flag of Saudi Arabia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of eng-sabri

ASKER

I solve my issue ,, Thanks to Community
rely is late