Class: Vagrant::Command::SSHConfigCommand

Inherits:
NamedBase
  • Object
show all
Defined in:
lib/vagrant/command/ssh_config.rb

Instance Attribute Summary

Attributes inherited from Base

#env

Instance Method Summary collapse

Methods inherited from Base

#initialize, register

Methods included from Helpers

#initialize_environment, #target_vms

Constructor Details

This class inherits a constructor from Vagrant::Command::Base

Instance Method Details

#executeObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/vagrant/command/ssh_config.rb', line 7

def execute
  raise Errors::MultiVMTargetRequired, :command => "ssh_config" if target_vms.length > 1
  vm = target_vms.first
  raise Errors::VMNotCreatedError if !vm.created?
  raise Errors::VMInaccessible if !vm.vm.accessible?

  # We need to fix the file permissions of the key if they aren't set
  # properly, otherwise if the user attempts to SSH in, it won't work!
  vm.ssh.check_key_permissions(vm.env.config.ssh.private_key_path)

  $stdout.puts(Util::TemplateRenderer.render("ssh_config", {
    :host_key => options[:host] || vm.name || "vagrant",
    :ssh_host => vm.env.config.ssh.host,
    :ssh_user => vm.env.config.ssh.username,
    :ssh_port => vm.ssh.port,
    :private_key_path => vm.env.config.ssh.private_key_path,
    :forward_agent => vm.env.config.ssh.forward_agent,
    :forward_x11   => vm.env.config.ssh.forward_x11
  }))
end