diff --git a/templates/commands/ssh_config/config.erb b/templates/commands/ssh_config/config.erb index 42b9a8f38..2cdb2dbf4 100644 --- a/templates/commands/ssh_config/config.erb +++ b/templates/commands/ssh_config/config.erb @@ -6,7 +6,11 @@ Host <%= host_key %> StrictHostKeyChecking no PasswordAuthentication no <% private_key_path.each do |path| %> - IdentityFile <%= path.inspect %> +<% if path.include?(" ") -%> + IdentityFile "<%= path %>" +<% else -%> + IdentityFile <%= path %> +<% end -%> <% end -%> IdentitiesOnly yes LogLevel FATAL diff --git a/test/unit/plugins/commands/ssh_config/command_test.rb b/test/unit/plugins/commands/ssh_config/command_test.rb index 0922c9a7a..e458776ec 100644 --- a/test/unit/plugins/commands/ssh_config/command_test.rb +++ b/test/unit/plugins/commands/ssh_config/command_test.rb @@ -92,8 +92,8 @@ Host #{machine.name} subject.execute - expect(output).to include('IdentityFile "foo"') - expect(output).to include('IdentityFile "bar"') + expect(output).to include("IdentityFile foo") + expect(output).to include("IdentityFile bar") end it "puts quotes around an identityfile path if it has a space" do @@ -107,17 +107,5 @@ Host #{machine.name} expect(output).to include('IdentityFile "with a space"') end - - it "escapes special characters" do - allow(machine).to receive(:ssh_info) { ssh_info.merge(private_key_path: ['/private/tmp/test of "vagrant" plugin/']) } - output = "" - allow(subject).to receive(:safe_puts) do |data| - output += data if data - end - - subject.execute - - expect(output).to include('"/private/tmp/test of \"vagrant\" plugin/"') - end end end