ruby net-ssh wywołuje skrypt bash z interaktywnymi monitami
Mam problem, który mam nadzieję, że możesz mi pomóc
Próbuję użyć ruby do ssh na komputerze i uruchomić skrypt bash, ta część jest dość łatwa, ale skrypt bash wymaga ode mnie interaktywnego wpisania nazwy użytkownika i hasła.
Jeśli więc uruchomię skrypt ręcznie, widzę: -
./run_file.sh
Enter username:
Enter password:
Tak więc w polu Wprowadź nazwę użytkownika muszę wprowadzić nazwę użytkownika itp
Mam prostą metodę, której używam do nawiązania połączenia, a moim pomysłem było przekazanie tablicy składającej się z
[‘command to run’, ‘username’, ‘password’]
ale nie wiem, jak rozszerzyć wywołanie Net :: SSH, aby odpowiedzieć na monity
# ssh conectivity method
def command_ssh(host, cmd)
require 'net/ssh'
user = LocalConfig::SSH_DETAILS[:user]
pass = LocalConfig::SSH_DETAILS[:pass]
Net::SSH.start(host, user, :password => pass, :paranoid => false, :auth_methods => ['password'], :timeout => 10 )do |ssh |
output = (ssh.exec!(cmd[0]))
return output
end
end
każdy ma jakieś pomysły