ssh

package
v3.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2016 License: MIT Imports: 11 Imported by: 207

Documentation

Overview

Package ssh implements a ssh client for go-git.

The Connect() method is not allowed in ssh, use ConnectWithAuth() instead.

Index

Constants

View Source
const (
	KeyboardInteractiveName = "ssh-keyboard-interactive"
	PasswordName            = "ssh-password"
	PasswordCallbackName    = "ssh-password-callback"
	PublicKeysName          = "ssh-public-keys"
	PublicKeysCallbackName  = "ssh-public-key-callback"
)

The names of the AuthMethod implementations. To be returned by the Name() method. Most git servers only allow PublicKeysName and PublicKeysCallbackName.

Variables

View Source
var (
	ErrInvalidAuthMethod      = errors.New("invalid ssh auth method")
	ErrAuthRequired           = errors.New("cannot connect: auth required")
	ErrNotConnected           = errors.New("not connected")
	ErrAlreadyConnected       = errors.New("already connected")
	ErrUploadPackAnswerFormat = errors.New("git-upload-pack bad answer format")
	ErrUnsupportedVCS         = errors.New("only git is supported")
	ErrUnsupportedRepo        = errors.New("only github.com is supported")
)

New errors introduced by this package.

Functions

This section is empty.

Types

type AuthMethod

type AuthMethod interface {
	common.AuthMethod
	// contains filtered or unexported methods
}

AuthMethod is the interface all auth methods for the ssh client must implement. The clientConfig method returns the ssh client configuration needed to establish an ssh connection.

type GitUploadPackService

type GitUploadPackService struct {
	// contains filtered or unexported fields
}

GitUploadPackService holds the service information. The zero value is safe to use. TODO: remove NewGitUploadPackService().

func NewGitUploadPackService

func NewGitUploadPackService() *GitUploadPackService

NewGitUploadPackService initialises a GitUploadPackService. TODO: remove this, as the struct is zero-value safe.

func (*GitUploadPackService) Connect

func (s *GitUploadPackService) Connect(ep common.Endpoint) (err error)

Connect cannot be used with SSH clients and always return ErrAuthRequired. Use ConnectWithAuth instead.

func (*GitUploadPackService) ConnectWithAuth

func (s *GitUploadPackService) ConnectWithAuth(ep common.Endpoint, auth common.AuthMethod) (err error)

ConnectWithAuth connects to ep using SSH. Authentication is handled by auth.

func (*GitUploadPackService) Disconnect

func (s *GitUploadPackService) Disconnect() (err error)

Disconnect the SSH client.

func (*GitUploadPackService) Fetch

Fetch retrieves the GitUploadPack form the repository. You must be connected to the repository before using this method (using the ConnectWithAuth() method). TODO: fetch should really reuse the info session instead of openning a new one

func (*GitUploadPackService) Info

func (s *GitUploadPackService) Info() (i *common.GitUploadPackInfo, err error)

Info returns the GitUploadPackInfo of the repository. The client must be connected with the repository (using the ConnectWithAuth() method) before using this method.

type KeyboardInteractive

type KeyboardInteractive struct {
	User      string
	Challenge ssh.KeyboardInteractiveChallenge
}

KeyboardInteractive implements AuthMethod by using a prompt/response sequence controlled by the server.

func (*KeyboardInteractive) Name

func (a *KeyboardInteractive) Name() string

func (*KeyboardInteractive) String

func (a *KeyboardInteractive) String() string

type Password

type Password struct {
	User string
	Pass string
}

Password implements AuthMethod by using the given password.

func (*Password) Name

func (a *Password) Name() string

func (*Password) String

func (a *Password) String() string

type PasswordCallback

type PasswordCallback struct {
	User     string
	Callback func() (pass string, err error)
}

PasswordCallback implements AuthMethod by using a callback to fetch the password.

func (*PasswordCallback) Name

func (a *PasswordCallback) Name() string

func (*PasswordCallback) String

func (a *PasswordCallback) String() string

type PublicKeys

type PublicKeys struct {
	User   string
	Signer ssh.Signer
}

PublicKeys implements AuthMethod by using the given key pairs.

func (*PublicKeys) Name

func (a *PublicKeys) Name() string

func (*PublicKeys) String

func (a *PublicKeys) String() string

type PublicKeysCallback

type PublicKeysCallback struct {
	User     string
	Callback func() (signers []ssh.Signer, err error)
}

PublicKeysCallback implements AuthMethod by asking a ssh.agent.Agent to act as a signer.

func (*PublicKeysCallback) Name

func (a *PublicKeysCallback) Name() string

func (*PublicKeysCallback) String

func (a *PublicKeysCallback) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL