Flesh out `:config` support.
Also noticed whilst testing that if the `ProxyCommand` uses `%r`, then it fails with `unable to find remote user`, so added support for `config.ssh.remote_user` aswell
This commit is contained in:
parent
87e38a0bed
commit
122ef7307c
|
@ -452,9 +452,11 @@ module Vagrant
|
||||||
info[:keys_only] ||= @config.ssh.default.keys_only
|
info[:keys_only] ||= @config.ssh.default.keys_only
|
||||||
info[:verify_host_key] ||= @config.ssh.default.verify_host_key
|
info[:verify_host_key] ||= @config.ssh.default.verify_host_key
|
||||||
info[:username] ||= @config.ssh.default.username
|
info[:username] ||= @config.ssh.default.username
|
||||||
|
info[:remote_user] ||= @config.ssh.default.remote_user
|
||||||
info[:compression] ||= @config.ssh.default.compression
|
info[:compression] ||= @config.ssh.default.compression
|
||||||
info[:dsa_authentication] ||= @config.ssh.default.dsa_authentication
|
info[:dsa_authentication] ||= @config.ssh.default.dsa_authentication
|
||||||
info[:extra_args] ||= @config.ssh.default.extra_args
|
info[:extra_args] ||= @config.ssh.default.extra_args
|
||||||
|
info[:config] ||= @config.ssh.default.config
|
||||||
|
|
||||||
# We set overrides if they are set. These take precedence over
|
# We set overrides if they are set. These take precedence over
|
||||||
# provider-returned data.
|
# provider-returned data.
|
||||||
|
@ -466,7 +468,9 @@ module Vagrant
|
||||||
info[:dsa_authentication] = @config.ssh.dsa_authentication
|
info[:dsa_authentication] = @config.ssh.dsa_authentication
|
||||||
info[:username] = @config.ssh.username if @config.ssh.username
|
info[:username] = @config.ssh.username if @config.ssh.username
|
||||||
info[:password] = @config.ssh.password if @config.ssh.password
|
info[:password] = @config.ssh.password if @config.ssh.password
|
||||||
|
info[:remote_user] = @config.ssh.remote_user if @config.ssh.remote_user
|
||||||
info[:extra_args] = @config.ssh.extra_args if @config.ssh.extra_args
|
info[:extra_args] = @config.ssh.extra_args if @config.ssh.extra_args
|
||||||
|
info[:config] = @config.ssh.config if @config.ssh.config
|
||||||
|
|
||||||
# We also set some fields that are purely controlled by Vagrant
|
# We also set some fields that are purely controlled by Vagrant
|
||||||
info[:forward_agent] = @config.ssh.forward_agent
|
info[:forward_agent] = @config.ssh.forward_agent
|
||||||
|
|
|
@ -55,6 +55,8 @@ module VagrantPlugins
|
||||||
proxy_command: ssh_info[:proxy_command],
|
proxy_command: ssh_info[:proxy_command],
|
||||||
ssh_command: ssh_info[:ssh_command],
|
ssh_command: ssh_info[:ssh_command],
|
||||||
forward_env: ssh_info[:forward_env],
|
forward_env: ssh_info[:forward_env],
|
||||||
|
config: ssh_info[:config],
|
||||||
|
remote_user: ssh_info[:remote_user],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Render the template and output directly to STDOUT
|
# Render the template and output directly to STDOUT
|
||||||
|
|
|
@ -418,6 +418,10 @@ module VagrantPlugins
|
||||||
connect_opts[:config] = ssh_info[:config]
|
connect_opts[:config] = ssh_info[:config]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if ssh_info[:remote_user]
|
||||||
|
connect_opts[:remote_user] = ssh_info[:remote_user]
|
||||||
|
end
|
||||||
|
|
||||||
@logger.info("Attempting to connect to SSH...")
|
@logger.info("Attempting to connect to SSH...")
|
||||||
@logger.info(" - Host: #{ssh_info[:host]}")
|
@logger.info(" - Host: #{ssh_info[:host]}")
|
||||||
@logger.info(" - Port: #{ssh_info[:port]}")
|
@logger.info(" - Port: #{ssh_info[:port]}")
|
||||||
|
|
|
@ -3,6 +3,7 @@ module VagrantPlugins
|
||||||
class SSHConnectConfig < Vagrant.plugin("2", :config)
|
class SSHConnectConfig < Vagrant.plugin("2", :config)
|
||||||
attr_accessor :host
|
attr_accessor :host
|
||||||
attr_accessor :port
|
attr_accessor :port
|
||||||
|
attr_accessor :config
|
||||||
attr_accessor :private_key_path
|
attr_accessor :private_key_path
|
||||||
attr_accessor :username
|
attr_accessor :username
|
||||||
attr_accessor :password
|
attr_accessor :password
|
||||||
|
@ -13,10 +14,12 @@ module VagrantPlugins
|
||||||
attr_accessor :compression
|
attr_accessor :compression
|
||||||
attr_accessor :dsa_authentication
|
attr_accessor :dsa_authentication
|
||||||
attr_accessor :extra_args
|
attr_accessor :extra_args
|
||||||
|
attr_accessor :remote_user
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@host = UNSET_VALUE
|
@host = UNSET_VALUE
|
||||||
@port = UNSET_VALUE
|
@port = UNSET_VALUE
|
||||||
|
@config = UNSET_VALUE
|
||||||
@private_key_path = UNSET_VALUE
|
@private_key_path = UNSET_VALUE
|
||||||
@username = UNSET_VALUE
|
@username = UNSET_VALUE
|
||||||
@password = UNSET_VALUE
|
@password = UNSET_VALUE
|
||||||
|
@ -27,6 +30,7 @@ module VagrantPlugins
|
||||||
@compression = UNSET_VALUE
|
@compression = UNSET_VALUE
|
||||||
@dsa_authentication = UNSET_VALUE
|
@dsa_authentication = UNSET_VALUE
|
||||||
@extra_args = UNSET_VALUE
|
@extra_args = UNSET_VALUE
|
||||||
|
@remote_user = UNSET_VALUE
|
||||||
end
|
end
|
||||||
|
|
||||||
def finalize!
|
def finalize!
|
||||||
|
@ -42,6 +46,7 @@ module VagrantPlugins
|
||||||
@compression = true if @compression == UNSET_VALUE
|
@compression = true if @compression == UNSET_VALUE
|
||||||
@dsa_authentication = true if @dsa_authentication == UNSET_VALUE
|
@dsa_authentication = true if @dsa_authentication == UNSET_VALUE
|
||||||
@extra_args = nil if @extra_args == UNSET_VALUE
|
@extra_args = nil if @extra_args == UNSET_VALUE
|
||||||
|
@remote_user = nil if @remote_user == UNSET_VALUE
|
||||||
|
|
||||||
if @private_key_path && !@private_key_path.is_a?(Array)
|
if @private_key_path && !@private_key_path.is_a?(Array)
|
||||||
@private_key_path = [@private_key_path]
|
@private_key_path = [@private_key_path]
|
||||||
|
@ -51,6 +56,9 @@ module VagrantPlugins
|
||||||
@verify_host_key = @paranoid
|
@verify_host_key = @paranoid
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Default to not loading system ssh_config file
|
||||||
|
@config = false if @config == UNSET_VALUE
|
||||||
|
|
||||||
# Values for verify_host_key changed in 5.0.0 of net-ssh. If old value
|
# Values for verify_host_key changed in 5.0.0 of net-ssh. If old value
|
||||||
# detected, update with new value
|
# detected, update with new value
|
||||||
case @verify_host_key
|
case @verify_host_key
|
||||||
|
|
Loading…
Reference in New Issue