ssh

package
v0.14.6 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2026 License: MPL-2.0 Imports: 31 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	MarkerStartPrefix = "# DevPod Start "
	MarkerEndPrefix   = "# DevPod End "
)
View Source
var (
	DevPodSSHHostKeyFile    = "id_devpod_rsa_host"
	DevPodSSHPrivateKeyFile = "id_devpod_rsa"
	DevPodSSHPublicKeyFile  = "id_devpod_rsa.pub"
)

Functions

func AddPrivateKeysToAgent

func AddPrivateKeysToAgent(ctx context.Context, log log.Logger) error

func ConfigFromKeyBytes

func ConfigFromKeyBytes(keyBytes []byte) (*ssh.ClientConfig, error)

func ConfigureSSHConfig

func ConfigureSSHConfig(params SSHConfigParams) error

func FindPrivateKeys

func FindPrivateKeys() ([]string, error)

func GetDevPodHostKey

func GetDevPodHostKey() (string, error)

func GetDevPodKeysDir

func GetDevPodKeysDir() string

func GetDevPodPrivateKeyRaw

func GetDevPodPrivateKeyRaw() ([]byte, error)

func GetDevPodPublicKey

func GetDevPodPublicKey() (string, error)

func GetHostKey

func GetHostKey(context, workspaceID string) (string, error)

func GetHostKeyBase

func GetHostKeyBase(dir string) (string, error)

func GetPrivateKeyRaw

func GetPrivateKeyRaw(context, workspaceID string) ([]byte, error)

func GetPrivateKeyRawBase

func GetPrivateKeyRawBase(dir string) ([]byte, error)

func GetPublicKey

func GetPublicKey(context, workspaceID string) (string, error)

func GetPublicKeyBase

func GetPublicKeyBase(dir string) (string, error)

func GetUser

func GetUser(
	workspaceID string,
	sshConfigPath string,
	sshConfigIncludePath string,
) (string, error)

func NewSSHClient

func NewSSHClient(user, addr string, keyBytes []byte) (*ssh.Client, error)

func NewSSHPassClient

func NewSSHPassClient(user, addr, password string) (*ssh.Client, error)

func PortForward

func PortForward(
	ctx context.Context,
	client *ssh.Client,
	localNetwork, localAddr, remoteNetwork, remoteAddr string,
	exitAfterTimeout time.Duration,
	log log.Logger,
) error

func RemoveFromConfig

func RemoveFromConfig(
	workspaceID string,
	sshConfigPath string,
	sshConfigIncludePath string,
	log log.Logger,
) error

func ResolveSSHConfigPath

func ResolveSSHConfigPath(sshConfigPath string) (string, error)

func ReversePortForward

func ReversePortForward(
	ctx context.Context,
	client *ssh.Client,
	remoteNetwork, remoteAddr, localNetwork, localAddr string,
	exitAfterTimeout time.Duration,
	log log.Logger,
) error

func Run

func Run(opts RunOptions) error

func StdioClient

func StdioClient(reader io.Reader, writer io.WriteCloser, exitOnClose bool) (*ssh.Client, error)

func StdioClientFromKeyBytesWithUser

func StdioClientFromKeyBytesWithUser(
	keyBytes []byte,
	reader io.Reader,
	writer io.WriteCloser,
	user string,
	exitOnClose bool,
) (*ssh.Client, error)

func StdioClientWithUser

func StdioClientWithUser(
	reader io.Reader,
	writer io.WriteCloser,
	user string,
	exitOnClose bool,
) (*ssh.Client, error)

func WatchWindowSize

func WatchWindowSize(ctx context.Context) <-chan os.Signal

Types

type DevPodSSHEntry

type DevPodSSHEntry struct {
	Host      string
	User      string
	Workspace string
}

type ExitError added in v0.12.5

type ExitError struct {
	ExitCode int
	Err      error
}

ExitError wraps an SSH exit error with the exit code.

func (*ExitError) Error added in v0.12.5

func (e *ExitError) Error() string

func (*ExitError) Unwrap added in v0.12.5

func (e *ExitError) Unwrap() error

type ForwardingFunction

type ForwardingFunction func(
	net.Conn,
	*ssh.Client,
	string,
	string,
	log.Logger,
)

type RunOptions added in v0.12.5

type RunOptions struct {
	Context context.Context
	Client  *ssh.Client
	Command string
	Stdin   io.Reader
	Stdout  io.Writer
	Stderr  io.Writer
	EnvVars map[string]string
}

type SSHConfigParams added in v0.9.5

type SSHConfigParams struct {
	SSHConfigPath        string
	SSHConfigIncludePath string
	Context              string
	Workspace            string
	User                 string
	Workdir              string
	Command              string
	GPGAgent             bool
	DevPodHome           string
	Provider             string
	Log                  log.Logger
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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