Class: Net::SSH::Authentication::Agent

Class | Net::SSH::Authentication::Agent
In: | lib/net/ssh/authentication/agent.rb
Parent: | Object

This class implements a simple client for the ssh-agent protocol. It does not implement any specific protocol, but instead copies the behavior of the ssh-agent functions in the OpenSSH library (3.8).

This means that although it behaves like a SSH1 client, it also has some SSH2 functionality (like signing data).

### Methods

close connect connect! identities negotiate! new sign

### Included Modules

Loggable

### Classes and Modules

Module Net::SSH::Authentication::Agent::Comment

### Constants

SSH2_AGENT_REQUEST_VERSION | = | 1
SSH2_AGENT_REQUEST_IDENTITIES | = | 11
SSH2_AGENT_IDENTITIES_ANSWER | = | 12
SSH2_AGENT_SIGN_REQUEST | = | 13
SSH2_AGENT_SIGN_RESPONSE | = | 14
SSH2_AGENT_FAILURE | = | 30
SSH2_AGENT_VERSION_RESPONSE | = | 103
SSH_COM_AGENT2_FAILURE | = | 102
SSH_AGENT_REQUEST_RSA_IDENTITIES | = | 1
SSH_AGENT_RSA_IDENTITIES_ANSWER1 | = | 2
SSH_AGENT_RSA_IDENTITIES_ANSWER2 | = | 5
SSH_AGENT_FAILURE | = | 5

### Attributes

socket | [R] | The underlying socket being used to communicate with the SSH agent.

### Public Class methods

connect(logger=nil)

Instantiates a new agent object, connects to a running SSH agent, negotiates the agent protocol version, and returns the agent object.

new(logger=nil)

Creates a new Agent object, using the optional logger instance to report status.

### Public Instance methods

close()

Closes this socket. This agent reference is no longer able to query the agent.

connect!()

Connect to the agent process using the socket factory and socket name given by the attribute writers. If the agent on the other end of the socket reports that it is an SSH2-compatible agent, this will fail (it only supports the ssh-agent distributed by OpenSSH).

identities()

Return an array of all identities (public keys) known to the agent. Each key returned is augmented with a `comment` property which is set to the comment returned by the agent for that key.

negotiate!()

Attempts to negotiate the SSH agent protocol version. Raises an error if the version could not be negotiated successfully.

sign(key, data)

Using the agent and the given public key, sign the given data. The signature is returned in SSH2 format.

[Validate]