From 22755169b513ebde33de2704afd2f7a0b366723a Mon Sep 17 00:00:00 2001 From: Denver Abrey Date: Thu, 13 Oct 2016 22:00:33 +0200 Subject: Add key authentication to ssh input --- lib/oxidized/input/ssh.rb | 4 +++- lib/oxidized/node.rb | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/oxidized') diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb index c0b7cf9..32f4e40 100644 --- a/lib/oxidized/input/ssh.rb +++ b/lib/oxidized/input/ssh.rb @@ -23,6 +23,7 @@ module Oxidized secure = Oxidized.config.input.ssh.secure @log = File.open(Oxidized::Config::Log + "/#{@node.ip}-ssh", 'w') if Oxidized.config.input.debug? port = vars(:ssh_port) || 22 + keys = node.auth[:private_key].is_a?(Array) ? @node.auth[:private_key] : [@node.auth[:private_key]] if proxy_host = vars(:ssh_proxy) proxy = Net::SSH::Proxy::Command.new("ssh #{proxy_host} -W %h:%p") end @@ -32,7 +33,8 @@ module Oxidized :paranoid => secure, :auth_methods => %w(none publickey password keyboard-interactive), :number_of_password_prompts => 0, - :proxy => proxy + :proxy => proxy, + :keys => keys } ssh_opts[:kex] = vars(:ssh_kex).split(/,\s*/) if vars(:ssh_kex) ssh_opts[:encryption] = vars(:ssh_encryption).split(/,\s*/) if vars(:ssh_encryption) diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index c93a16a..dc44df7 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -130,8 +130,9 @@ module Oxidized def resolve_auth opt # Resolve configured username/password { - username: resolve_key(:username, opt), - password: resolve_key(:password, opt), + username: resolve_key(:username, opt), + password: resolve_key(:password, opt), + private_key: resolve_key(:private_key, opt), } end -- cgit v1.2.1 From 75534fa493013a5e563877ffc05eca6f4372999c Mon Sep 17 00:00:00 2001 From: Denver Abrey Date: Mon, 17 Oct 2016 20:42:10 +0200 Subject: Use variable vars(:ssh_keys) for private key authentication --- lib/oxidized/input/ssh.rb | 5 ++--- lib/oxidized/node.rb | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'lib/oxidized') diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb index 32f4e40..15f1427 100644 --- a/lib/oxidized/input/ssh.rb +++ b/lib/oxidized/input/ssh.rb @@ -23,7 +23,6 @@ module Oxidized secure = Oxidized.config.input.ssh.secure @log = File.open(Oxidized::Config::Log + "/#{@node.ip}-ssh", 'w') if Oxidized.config.input.debug? port = vars(:ssh_port) || 22 - keys = node.auth[:private_key].is_a?(Array) ? @node.auth[:private_key] : [@node.auth[:private_key]] if proxy_host = vars(:ssh_proxy) proxy = Net::SSH::Proxy::Command.new("ssh #{proxy_host} -W %h:%p") end @@ -34,9 +33,9 @@ module Oxidized :auth_methods => %w(none publickey password keyboard-interactive), :number_of_password_prompts => 0, :proxy => proxy, - :keys => keys } - ssh_opts[:kex] = vars(:ssh_kex).split(/,\s*/) if vars(:ssh_kex) + ssh_opts[:keys] = vars(:ssh_keys).is_a?(Array) ? vars(:ssh_keys) : [vars(:ssh_keys)] if vars(:ssh_keys) + ssh_opts[:kex] = vars(:ssh_kex).split(/,\s*/) if vars(:ssh_kex) ssh_opts[:encryption] = vars(:ssh_encryption).split(/,\s*/) if vars(:ssh_encryption) Oxidized.logger.debug "lib/oxidized/input/ssh.rb: Connecting to #{@node.name}" diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index dc44df7..b13ce0e 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -132,7 +132,6 @@ module Oxidized { username: resolve_key(:username, opt), password: resolve_key(:password, opt), - private_key: resolve_key(:private_key, opt), } end -- cgit v1.2.1