providers/docker: upload the keys we need for SSH
This commit is contained in:
parent
fe0db9a63e
commit
58a043e2aa
|
@ -1,3 +1,4 @@
|
||||||
|
require "digest/md5"
|
||||||
require "tempfile"
|
require "tempfile"
|
||||||
|
|
||||||
module VagrantPlugins
|
module VagrantPlugins
|
||||||
|
@ -132,8 +133,13 @@ module VagrantPlugins
|
||||||
info = @machine.ssh_info
|
info = @machine.ssh_info
|
||||||
info[:port] ||= 22
|
info[:port] ||= 22
|
||||||
|
|
||||||
|
# Make sure our private keys are synced over to the host VM
|
||||||
|
key_args = sync_private_keys(info).map do |path|
|
||||||
|
"-i #{path}"
|
||||||
|
end.join(" ")
|
||||||
|
|
||||||
# Build the SSH command
|
# Build the SSH command
|
||||||
"ssh -i /home/vagrant/insecure " +
|
"ssh #{key_args} " +
|
||||||
"-o Compression=yes " +
|
"-o Compression=yes " +
|
||||||
"-o ConnectTimeout=5 " +
|
"-o ConnectTimeout=5 " +
|
||||||
"-o StrictHostKeyChecking=no " +
|
"-o StrictHostKeyChecking=no " +
|
||||||
|
@ -141,6 +147,34 @@ module VagrantPlugins
|
||||||
"-p#{info[:port]} " +
|
"-p#{info[:port]} " +
|
||||||
"#{info[:username]}@#{info[:host]}"
|
"#{info[:username]}@#{info[:host]}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def sync_private_keys(info)
|
||||||
|
@keys ||= {}
|
||||||
|
|
||||||
|
id = Digest::MD5.hexdigest(
|
||||||
|
@machine.env.root_path.to_s + @machine.name.to_s)
|
||||||
|
|
||||||
|
result = []
|
||||||
|
info[:private_key_path].each do |path|
|
||||||
|
if !@keys[path.to_s]
|
||||||
|
# We haven't seen this before, upload it!
|
||||||
|
guest_path = "/tmp/key_#{id}_#{Digest::MD5.hexdigest(path.to_s)}"
|
||||||
|
@host_vm.communicate.upload(path.to_s, guest_path)
|
||||||
|
|
||||||
|
# Make sure it has the proper chmod
|
||||||
|
@host_vm.communicate.execute("chmod 0600 #{guest_path}")
|
||||||
|
|
||||||
|
# Set it
|
||||||
|
@keys[path.to_s] = guest_path
|
||||||
|
end
|
||||||
|
|
||||||
|
result << @keys[path.to_s]
|
||||||
|
end
|
||||||
|
|
||||||
|
result
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue