ruby net-ssh chamando script bash com prompts interativos
Eu tenho um problema que eu espero que você possa me ajudar com
Estou tentando usar o ruby para o ssh em uma máquina e executar um script bash. Essa parte é bastante fácil, mas o script exige que eu insira um nome de usuário e uma senha interativamente, e é nesse ponto que estou presa
Então, se eu executar o script manualmente, vejo:
./run_file.sh
Enter username:
Enter password:
Então, no prompt de nome de usuário digite eu tenho que digitar o nome de usuário etc
Eu tenho um método simples que uso para fazer a conexão e minha ideia era passar em uma matriz composta de
[‘command to run’, ‘username’, ‘password’]
mas não sei como estender a chamada Net :: SSH para responder aos prompts
# 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
Alguém tem alguma ideia