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