Method: LinuxAdmin::SSHAgent#start

Defined in:
lib/linux_admin/ssh_agent.rb

#startObject

Raises:

  • (StandardError)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/linux_admin/ssh_agent.rb', line 12

def start
  if @socket
    FileUtils.mkdir_p(File.dirname(@socket))
    agent_details = `ssh-agent -a #{@socket}`
  else
    agent_details = `ssh-agent`
    @socket = parse_ssh_agent_socket(agent_details)
  end
  @pid = parse_ssh_agent_pid(agent_details)
  IO.popen({'SSH_AUTH_SOCK' => @socket, 'SSH_AGENT_PID' => @pid}, ['ssh-add', '-'], :mode => 'w') do |f|
    f.puts(@private_key)
  end
  raise StandardError, "Couldn't add key to agent" if $CHILD_STATUS.to_i != 0
end