私はあなたが私を助けてくれることを願っています問題があります
私はrubyを使用してマシンにSSHで接続し、bashスクリプトを実行しようとしています。この部分はかなり簡単ですが、bashスクリプトではユーザー名とパスワードをインタラクティブに入力する必要があり、ここで行き詰まります。
したがって、スクリプトを手動で実行すると、次のようになります。-
./run_file.sh
Enter username:
Enter password:
したがって、ユーザー名の入力プロンプトで、ユーザー名などを入力する必要があります
接続を確立するために使用する簡単な方法があります。私のアイデアは、で構成される配列を渡すことでした。
[‘command to run’, ‘username’, ‘password’]
しかし、プロンプトに応答するためにNet::SSH呼び出しを拡張する方法がわかりません
# 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
誰もがアイデアを得た