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
|