summaryrefslogtreecommitdiff
path: root/lib/oxidized
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2016-01-21 11:55:09 +0200
committerytti <saku@ytti.fi>2016-01-21 11:55:09 +0200
commit421ae43ee9546ca0b1c45a9eaf6daa769ab4e9ac (patch)
tree2f4722c5eab671da0096ea8f6484fb16f2fe41f5 /lib/oxidized
parent93593578aabba6cbbc11b331ead3c4271b3569f6 (diff)
parent7fab68a6819d06b0ae0db2f81a535dfaf3e75bc9 (diff)
Merge pull request #274 from Shopify/ssh-proxy
option to use ssh proxy command
Diffstat (limited to 'lib/oxidized')
-rw-r--r--lib/oxidized/input/ssh.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb
index 476a786..493f7bb 100644
--- a/lib/oxidized/input/ssh.rb
+++ b/lib/oxidized/input/ssh.rb
@@ -1,5 +1,6 @@
module Oxidized
require 'net/ssh'
+ require 'net/ssh/proxy/command'
require 'timeout'
require 'oxidized/input/cli'
class SSH < Input
@@ -22,11 +23,15 @@ module Oxidized
secure = Oxidized.config.input.ssh.secure
@log = File.open(Oxidized::Config::Crash + "-#{@node.ip}-ssh", 'w') if Oxidized.config.input.debug?
port = vars(:ssh_port) || 22
- @ssh = Net::SSH.start @node.ip, @node.auth[:username], :port => port.to_i,
+ if proxy_host = vars(:proxy)
+ proxy = Net::SSH::Proxy::Command.new("ssh #{proxy_host} nc %h %p")
+ end
+ @ssh = Net::SSH.start(@node.ip, @node.auth[:username], :port => port.to_i,
:password => @node.auth[:password], :timeout => Oxidized.config.timeout,
:paranoid => secure,
:auth_methods => %w(none publickey password keyboard-interactive),
- :number_of_password_prompts => 0
+ :number_of_password_prompts => 0,
+ :proxy => proxy)
unless @exec
shell_open @ssh
begin