Documentation ¶
Index ¶
- Constants
- func ServeAgent(roagent *ROAgent, c io.ReadWriter) error
- type AddedKey
- type Agent
- type ConstraintExtension
- type Key
- type ROAgent
- func (roagent *ROAgent) Add(key AddedKey) error
- func (roagent *ROAgent) List() ([]*Key, error)
- func (roagent *ROAgent) Lock(passphrase []byte) error
- func (roagent *ROAgent) Remove(key ssh.PublicKey) error
- func (roagent *ROAgent) RemoveAll() error
- func (roagent *ROAgent) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error)
- func (roagent *ROAgent) Signers() ([]ssh.Signer, error)
- func (roagent *ROAgent) Unlock(passphrase []byte) error
- type ROSigner
Constants ¶
const SSHROKey string = "ssh-ro"
Variables ¶
This section is empty.
Functions ¶
func ServeAgent ¶
func ServeAgent(roagent *ROAgent, c io.ReadWriter) error
ServeAgent serves the agent protocol on the given connection. It returns when an I/O error occurs.
Types ¶
type AddedKey ¶
type AddedKey struct { // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or // *ecdsa.PrivateKey, which will be inserted into the agent. PrivateKey interface{} // Certificate, if not nil, is communicated to the agent and will be // stored with the key. Certificate *ssh.Certificate // Comment is an optional, free-form string. Comment string // LifetimeSecs, if not zero, is the number of seconds that the // agent will store the key for. LifetimeSecs uint32 // ConfirmBeforeUse, if true, requests that the agent confirm with the // user before each use of this key. ConfirmBeforeUse bool // ConstraintExtensions are the experimental or private-use constraints // defined by users. ConstraintExtensions []ConstraintExtension }
AddedKey describes an SSH key to be added to an Agent.
type Agent ¶
type Agent interface { // List returns the identities known to the agent. List() ([]*Key, error) // Sign has the agent sign the data using a protocol 2 key as defined // in [PROTOCOL.agent] section 2.6.2. Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) // Add adds a private key to the agent. Add(key AddedKey) error // Remove removes all identities with the given public key. Remove(key ssh.PublicKey) error // RemoveAll removes all identities. RemoveAll() error // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. Lock(passphrase []byte) error // Unlock undoes the effect of Lock Unlock(passphrase []byte) error // Signers returns signers for all the known keys. Signers() ([]ssh.Signer, error) }
Agent represents the capabilities of an ssh-agent.
func NewClient ¶
func NewClient(rw io.ReadWriter) Agent
NewClient returns an Agent that talks to an ssh-agent process over the given connection.
type ConstraintExtension ¶
type ConstraintExtension struct { // ExtensionName consist of a UTF-8 string suffixed by the // implementation domain following the naming scheme defined // in Section 4.2 of [RFC4251], e.g. "foo@example.com". ExtensionName string // ExtensionDetails contains the actual content of the extended // constraint. ExtensionDetails []byte }
ConstraintExtension describes an optional constraint defined by users.
type Key ¶
Key represents a protocol 2 public key as defined in [PROTOCOL.agent], section 2.5.2.
type ROAgent ¶
type ROAgent struct {
// contains filtered or unexported fields
}
func NewROAgent ¶
func NewROAgent(server *roclient.RemoteServer, username, password string) *ROAgent
NewROAgent creates a new SSH agent which forwards signature requests to the provided remote server
func (*ROAgent) Lock ¶
Locks the ROAgent by removing the password TODO should this encrypt the password instead?
type ROSigner ¶
type ROSigner struct {
// contains filtered or unexported fields
}
func NewROSigner ¶
NewROSigner adds a new SSH identity to the ROAgent