s4wave_sshhost

package
v0.54.0 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

SSH host-key trust pins parse and fingerprint authorized_keys via golang.org/x/crypto/ssh, which pulls reflect through its wire codec. Only the native terminal SSH client (sdk/terminal/ssh_connect.go, also !js) calls these; the browser GoScript closure registers the SSH host op without them, so this file stays native-only to keep reflect out of the web build.

Index

Constants

View Source
const (
	// SshHostTypeID is the type identifier for SSH-only Host objects.
	SshHostTypeID = "spacewave/ssh-host"
	// DefaultSshPort is the default SSH port applied by create paths.
	DefaultSshPort uint32 = 22
)
View Source
const SRPCSshHostResourceServiceServiceID = "s4wave.sshhost.SshHostResourceService"

Variables

View Source
var (
	SshHostProbeState_name = map[int32]string{
		0: "SSH_HOST_PROBE_STATE_UNKNOWN",
		1: "SSH_HOST_PROBE_STATE_READY",
		2: "SSH_HOST_PROBE_STATE_FAILED",
	}
	SshHostProbeState_value = map[string]int32{
		"SSH_HOST_PROBE_STATE_UNKNOWN": 0,
		"SSH_HOST_PROBE_STATE_READY":   1,
		"SSH_HOST_PROBE_STATE_FAILED":  2,
	}
)

Enum value maps for SshHostProbeState.

View Source
var CreateSshHostOpId = "spacewave/ssh-host/create"

CreateSshHostOpId is the operation id for CreateSshHostOp.

Functions

func LookupCreateSshHostOp

func LookupCreateSshHostOp(ctx context.Context, operationTypeID string) (world.Operation, error)

LookupCreateSshHostOp looks up a CreateSshHostOp operation type.

func NewCreateSshHostOpBlock

func NewCreateSshHostOpBlock() block.Block

NewCreateSshHostOpBlock constructs a CreateSshHostOp block.

func NewSRPCSshHostResourceServiceHandler

func NewSRPCSshHostResourceServiceHandler(impl SRPCSshHostResourceServiceServer, serviceID string) srpc.Handler

NewSRPCSshHostResourceServiceHandler constructs a new RPC handler. serviceID: if empty, uses default: s4wave.sshhost.SshHostResourceService

func NewSshHostBlock

func NewSshHostBlock() block.Block

NewSshHostBlock constructs a new SSH Host block.

func RememberSshHostKeyPin added in v0.52.0

func RememberSshHostKeyPin(ctx context.Context, eng world.Engine, objectKey string, pin *SshHostKeyPin) error

RememberSshHostKeyPin appends a newly accepted key pin to the SSH Host if it is not already remembered.

func SRPCRegisterSshHostResourceService

func SRPCRegisterSshHostResourceService(mux srpc.Mux, impl SRPCSshHostResourceServiceServer) error

SRPCRegisterSshHostResourceService registers the implementation with the mux. Uses the default serviceID: s4wave.sshhost.SshHostResourceService

func SshHostKeyPinsMatchPublicKey added in v0.52.0

func SshHostKeyPinsMatchPublicKey(pins []*SshHostKeyPin, key ssh.PublicKey) bool

SshHostKeyPinsMatchPublicKey checks whether a stored SSH Host pin accepts a presented key.

func ValidateSshHostCredentialSecrets

func ValidateSshHostCredentialSecrets(ctx context.Context, ws world.WorldState, refs *SshHostCredentialRefs) error

ValidateSshHostCredentialSecrets checks SSH Host refs against redacted Secret metadata.

Types

type CreateSshHostOp

type CreateSshHostOp struct {

	// ObjectKey is the key to create the SSH Host at.
	ObjectKey string `protobuf:"bytes,1,opt,name=object_key,json=objectKey,proto3" json:"objectKey,omitempty"`
	// Label is the operator-visible Host label.
	Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
	// Endpoint is the SSH endpoint and username.
	Endpoint *SshHostEndpoint `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Credentials contains Secret object refs, never raw credential bytes.
	Credentials *SshHostCredentialRefs `protobuf:"bytes,4,opt,name=credentials,proto3" json:"credentials,omitempty"`
	// HostKeyPins are the accepted SSH host keys for trust verification.
	HostKeyPins []*SshHostKeyPin `protobuf:"bytes,5,rep,name=host_key_pins,json=hostKeyPins,proto3" json:"hostKeyPins,omitempty"`
	// Timestamp is the creation timestamp.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// contains filtered or unexported fields
}

CreateSshHostOp creates an SSH Host world object.

func NewCreateSshHostOp

func NewCreateSshHostOp(
	objKey string,
	label string,
	endpoint *SshHostEndpoint,
	credentials *SshHostCredentialRefs,
	hostKeyPins []*SshHostKeyPin,
	ts time.Time,
) *CreateSshHostOp

NewCreateSshHostOp constructs a new CreateSshHostOp.

func (*CreateSshHostOp) ApplyWorldObjectOp

func (o *CreateSshHostOp) ApplyWorldObjectOp(
	ctx context.Context,
	le *logrus.Entry,
	os world.ObjectState,
	sender peer.ID,
) (sysErr bool, err error)

ApplyWorldObjectOp applies the operation to a world object handle.

func (*CreateSshHostOp) ApplyWorldOp

func (o *CreateSshHostOp) ApplyWorldOp(
	ctx context.Context,
	le *logrus.Entry,
	ws world.WorldState,
	sender peer.ID,
) (sysErr bool, err error)

ApplyWorldOp applies the operation as a world operation.

func (*CreateSshHostOp) CloneMessageVT

func (m *CreateSshHostOp) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*CreateSshHostOp) CloneVT

func (m *CreateSshHostOp) CloneVT() *CreateSshHostOp

func (*CreateSshHostOp) EqualMessageVT

func (this *CreateSshHostOp) EqualMessageVT(thatMsg any) bool

func (*CreateSshHostOp) EqualVT

func (this *CreateSshHostOp) EqualVT(that *CreateSshHostOp) bool

func (*CreateSshHostOp) GetCredentials

func (x *CreateSshHostOp) GetCredentials() *SshHostCredentialRefs

func (*CreateSshHostOp) GetEndpoint

func (x *CreateSshHostOp) GetEndpoint() *SshHostEndpoint

func (*CreateSshHostOp) GetHostKeyPins

func (x *CreateSshHostOp) GetHostKeyPins() []*SshHostKeyPin

func (*CreateSshHostOp) GetLabel

func (x *CreateSshHostOp) GetLabel() string

func (*CreateSshHostOp) GetObjectKey

func (x *CreateSshHostOp) GetObjectKey() string

func (*CreateSshHostOp) GetOperationTypeId

func (o *CreateSshHostOp) GetOperationTypeId() string

GetOperationTypeId returns the operation type identifier.

func (*CreateSshHostOp) GetTimestamp

func (x *CreateSshHostOp) GetTimestamp() *timestamppb.Timestamp

func (*CreateSshHostOp) MarshalBlock

func (o *CreateSshHostOp) MarshalBlock() ([]byte, error)

MarshalBlock marshals the block to binary.

func (*CreateSshHostOp) MarshalJSON

func (x *CreateSshHostOp) MarshalJSON() ([]byte, error)

MarshalJSON marshals the CreateSshHostOp to JSON.

func (*CreateSshHostOp) MarshalProtoJSON

func (x *CreateSshHostOp) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the CreateSshHostOp message to JSON.

func (*CreateSshHostOp) MarshalProtoText

func (x *CreateSshHostOp) MarshalProtoText() string

func (*CreateSshHostOp) MarshalToSizedBufferVT

func (m *CreateSshHostOp) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*CreateSshHostOp) MarshalToVT

func (m *CreateSshHostOp) MarshalToVT(dAtA []byte) (int, error)

func (*CreateSshHostOp) MarshalVT

func (m *CreateSshHostOp) MarshalVT() (dAtA []byte, err error)

func (*CreateSshHostOp) ProtoMessage

func (*CreateSshHostOp) ProtoMessage()

func (*CreateSshHostOp) Reset

func (x *CreateSshHostOp) Reset()

func (*CreateSshHostOp) SizeVT

func (m *CreateSshHostOp) SizeVT() (n int)

func (*CreateSshHostOp) String

func (x *CreateSshHostOp) String() string

func (*CreateSshHostOp) UnmarshalBlock

func (o *CreateSshHostOp) UnmarshalBlock(data []byte) error

UnmarshalBlock unmarshals the block from binary.

func (*CreateSshHostOp) UnmarshalJSON

func (x *CreateSshHostOp) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the CreateSshHostOp from JSON.

func (*CreateSshHostOp) UnmarshalProtoJSON

func (x *CreateSshHostOp) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the CreateSshHostOp message from JSON.

func (*CreateSshHostOp) UnmarshalVT

func (m *CreateSshHostOp) UnmarshalVT(dAtA []byte) error

func (*CreateSshHostOp) Validate

func (o *CreateSshHostOp) Validate() error

Validate performs cursory checks on the op.

type SRPCSshHostResourceServiceClient

type SRPCSshHostResourceServiceClient interface {
	// SRPCClient returns the underlying SRPC client.
	SRPCClient() srpc.Client

	WatchSshHostState(ctx context.Context, in *WatchSshHostStateRequest) (SRPCSshHostResourceService_WatchSshHostStateClient, error)
}

func NewSRPCSshHostResourceServiceClient

func NewSRPCSshHostResourceServiceClient(cc srpc.Client) SRPCSshHostResourceServiceClient

func NewSRPCSshHostResourceServiceClientWithServiceID

func NewSRPCSshHostResourceServiceClientWithServiceID(cc srpc.Client, serviceID string) SRPCSshHostResourceServiceClient

type SRPCSshHostResourceServiceHandler

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

func (SRPCSshHostResourceServiceHandler) GetMethodIDs

func (SRPCSshHostResourceServiceHandler) GetMethodIDs() []string

func (*SRPCSshHostResourceServiceHandler) GetServiceID

func (d *SRPCSshHostResourceServiceHandler) GetServiceID() string

func (*SRPCSshHostResourceServiceHandler) InvokeMethod

func (d *SRPCSshHostResourceServiceHandler) InvokeMethod(
	serviceID, methodID string,
	strm srpc.Stream,
) (bool, error)

func (SRPCSshHostResourceServiceHandler) InvokeMethod_WatchSshHostState

func (SRPCSshHostResourceServiceHandler) InvokeMethod_WatchSshHostState(impl SRPCSshHostResourceServiceServer, strm srpc.Stream) error

type SRPCSshHostResourceServiceServer

type SRPCSshHostResourceServiceServer interface {
	WatchSshHostState(*WatchSshHostStateRequest, SRPCSshHostResourceService_WatchSshHostStateStream) error
}

type SRPCSshHostResourceService_WatchSshHostStateClient

type SRPCSshHostResourceService_WatchSshHostStateClient interface {
	srpc.Stream
	Recv() (*WatchSshHostStateResponse, error)
	RecvTo(*WatchSshHostStateResponse) error
}

type SRPCSshHostResourceService_WatchSshHostStateStream

type SRPCSshHostResourceService_WatchSshHostStateStream interface {
	srpc.Stream
	Send(*WatchSshHostStateResponse) error
	SendAndClose(*WatchSshHostStateResponse) error
}

type SshHost

type SshHost struct {

	// Label is the operator-visible Host label.
	Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
	// Endpoint is the SSH endpoint and username.
	Endpoint *SshHostEndpoint `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Credentials contains Secret object refs, never raw credential bytes.
	Credentials *SshHostCredentialRefs `protobuf:"bytes,3,opt,name=credentials,proto3" json:"credentials,omitempty"`
	// HostKeyPins are the accepted SSH host keys for trust verification.
	HostKeyPins []*SshHostKeyPin `protobuf:"bytes,4,rep,name=host_key_pins,json=hostKeyPins,proto3" json:"hostKeyPins,omitempty"`
	// LastStatus is the last redacted SSH reachability state.
	LastStatus *SshHostStatus `protobuf:"bytes,5,opt,name=last_status,json=lastStatus,proto3" json:"lastStatus,omitempty"`
	// CreatedAt is when this SSH Host object was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"createdAt,omitempty"`
	// UpdatedAt is when this SSH Host object was last updated.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updatedAt,omitempty"`
	// contains filtered or unexported fields
}

SshHost is the world-block state for an SSH-only Host.

func UnmarshalSshHost

func UnmarshalSshHost(ctx context.Context, bcs *block.Cursor) (*SshHost, error)

UnmarshalSshHost unmarshals an SSH Host from a cursor.

func (*SshHost) CloneMessageVT

func (m *SshHost) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*SshHost) CloneVT

func (m *SshHost) CloneVT() *SshHost

func (*SshHost) EqualMessageVT

func (this *SshHost) EqualMessageVT(thatMsg any) bool

func (*SshHost) EqualVT

func (this *SshHost) EqualVT(that *SshHost) bool

func (*SshHost) GetCreatedAt

func (x *SshHost) GetCreatedAt() *timestamppb.Timestamp

func (*SshHost) GetCredentials

func (x *SshHost) GetCredentials() *SshHostCredentialRefs

func (*SshHost) GetEndpoint

func (x *SshHost) GetEndpoint() *SshHostEndpoint

func (*SshHost) GetHostKeyPins

func (x *SshHost) GetHostKeyPins() []*SshHostKeyPin

func (*SshHost) GetLabel

func (x *SshHost) GetLabel() string

func (*SshHost) GetLastStatus

func (x *SshHost) GetLastStatus() *SshHostStatus

func (*SshHost) GetUpdatedAt

func (x *SshHost) GetUpdatedAt() *timestamppb.Timestamp

func (*SshHost) MarshalBlock

func (h *SshHost) MarshalBlock() ([]byte, error)

MarshalBlock marshals the SSH Host to bytes.

func (*SshHost) MarshalJSON

func (x *SshHost) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHost to JSON.

func (*SshHost) MarshalProtoJSON

func (x *SshHost) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHost message to JSON.

func (*SshHost) MarshalProtoText

func (x *SshHost) MarshalProtoText() string

func (*SshHost) MarshalToSizedBufferVT

func (m *SshHost) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SshHost) MarshalToVT

func (m *SshHost) MarshalToVT(dAtA []byte) (int, error)

func (*SshHost) MarshalVT

func (m *SshHost) MarshalVT() (dAtA []byte, err error)

func (*SshHost) ProtoMessage

func (*SshHost) ProtoMessage()

func (*SshHost) Reset

func (x *SshHost) Reset()

func (*SshHost) SizeVT

func (m *SshHost) SizeVT() (n int)

func (*SshHost) String

func (x *SshHost) String() string

func (*SshHost) UnmarshalBlock

func (h *SshHost) UnmarshalBlock(data []byte) error

UnmarshalBlock unmarshals the SSH Host from bytes.

func (*SshHost) UnmarshalJSON

func (x *SshHost) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHost from JSON.

func (*SshHost) UnmarshalProtoJSON

func (x *SshHost) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHost message from JSON.

func (*SshHost) UnmarshalVT

func (m *SshHost) UnmarshalVT(dAtA []byte) error

func (*SshHost) Validate

func (h *SshHost) Validate() error

Validate performs cursory checks on the SSH Host block.

type SshHostCredentialRefs

type SshHostCredentialRefs struct {

	// PrivateKeySecretObjectKey points at a Secret containing a PEM private key.
	PrivateKeySecretObjectKey string `` /* 138-byte string literal not displayed */
	// PasswordSecretObjectKey points at a Secret containing an SSH password.
	PasswordSecretObjectKey string `` /* 131-byte string literal not displayed */
	// PassphraseSecretObjectKey points at a Secret containing a private-key passphrase.
	PassphraseSecretObjectKey string `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

SshHostCredentialRefs points at Secret objects containing credential payloads.

func (*SshHostCredentialRefs) CloneMessageVT

func (*SshHostCredentialRefs) CloneVT

func (*SshHostCredentialRefs) EqualMessageVT

func (this *SshHostCredentialRefs) EqualMessageVT(thatMsg any) bool

func (*SshHostCredentialRefs) EqualVT

func (this *SshHostCredentialRefs) EqualVT(that *SshHostCredentialRefs) bool

func (*SshHostCredentialRefs) GetPassphraseSecretObjectKey

func (x *SshHostCredentialRefs) GetPassphraseSecretObjectKey() string

func (*SshHostCredentialRefs) GetPasswordSecretObjectKey

func (x *SshHostCredentialRefs) GetPasswordSecretObjectKey() string

func (*SshHostCredentialRefs) GetPrivateKeySecretObjectKey

func (x *SshHostCredentialRefs) GetPrivateKeySecretObjectKey() string

func (*SshHostCredentialRefs) MarshalJSON

func (x *SshHostCredentialRefs) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHostCredentialRefs to JSON.

func (*SshHostCredentialRefs) MarshalProtoJSON

func (x *SshHostCredentialRefs) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHostCredentialRefs message to JSON.

func (*SshHostCredentialRefs) MarshalProtoText

func (x *SshHostCredentialRefs) MarshalProtoText() string

func (*SshHostCredentialRefs) MarshalToSizedBufferVT

func (m *SshHostCredentialRefs) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SshHostCredentialRefs) MarshalToVT

func (m *SshHostCredentialRefs) MarshalToVT(dAtA []byte) (int, error)

func (*SshHostCredentialRefs) MarshalVT

func (m *SshHostCredentialRefs) MarshalVT() (dAtA []byte, err error)

func (*SshHostCredentialRefs) ProtoMessage

func (*SshHostCredentialRefs) ProtoMessage()

func (*SshHostCredentialRefs) Reset

func (x *SshHostCredentialRefs) Reset()

func (*SshHostCredentialRefs) SizeVT

func (m *SshHostCredentialRefs) SizeVT() (n int)

func (*SshHostCredentialRefs) String

func (x *SshHostCredentialRefs) String() string

func (*SshHostCredentialRefs) UnmarshalJSON

func (x *SshHostCredentialRefs) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHostCredentialRefs from JSON.

func (*SshHostCredentialRefs) UnmarshalProtoJSON

func (x *SshHostCredentialRefs) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHostCredentialRefs message from JSON.

func (*SshHostCredentialRefs) UnmarshalVT

func (m *SshHostCredentialRefs) UnmarshalVT(dAtA []byte) error

type SshHostCredentialSecretExpectation

type SshHostCredentialSecretExpectation struct {
	Field     string
	ObjectKey string
	Kind      string
}

SshHostCredentialSecretExpectation describes one expected Secret reference.

func SshHostCredentialSecretExpectations

func SshHostCredentialSecretExpectations(refs *SshHostCredentialRefs) []SshHostCredentialSecretExpectation

SshHostCredentialSecretExpectations returns the expected Secret kind for each set credential ref.

type SshHostEndpoint

type SshHostEndpoint struct {

	// Host is the DNS name, IP address, or SSH config host alias.
	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// Port is the SSH port. Zero is normalized to 22 by create paths.
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// Username is the SSH login user.
	Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	// contains filtered or unexported fields
}

SshHostEndpoint describes the SSH endpoint without private credentials.

func NormalizeSshHostEndpoint

func NormalizeSshHostEndpoint(endpoint *SshHostEndpoint) *SshHostEndpoint

NormalizeSshHostEndpoint fills endpoint defaults without changing identity.

func (*SshHostEndpoint) CloneMessageVT

func (m *SshHostEndpoint) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*SshHostEndpoint) CloneVT

func (m *SshHostEndpoint) CloneVT() *SshHostEndpoint

func (*SshHostEndpoint) EqualMessageVT

func (this *SshHostEndpoint) EqualMessageVT(thatMsg any) bool

func (*SshHostEndpoint) EqualVT

func (this *SshHostEndpoint) EqualVT(that *SshHostEndpoint) bool

func (*SshHostEndpoint) GetHost

func (x *SshHostEndpoint) GetHost() string

func (*SshHostEndpoint) GetPort

func (x *SshHostEndpoint) GetPort() uint32

func (*SshHostEndpoint) GetUsername

func (x *SshHostEndpoint) GetUsername() string

func (*SshHostEndpoint) MarshalJSON

func (x *SshHostEndpoint) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHostEndpoint to JSON.

func (*SshHostEndpoint) MarshalProtoJSON

func (x *SshHostEndpoint) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHostEndpoint message to JSON.

func (*SshHostEndpoint) MarshalProtoText

func (x *SshHostEndpoint) MarshalProtoText() string

func (*SshHostEndpoint) MarshalToSizedBufferVT

func (m *SshHostEndpoint) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SshHostEndpoint) MarshalToVT

func (m *SshHostEndpoint) MarshalToVT(dAtA []byte) (int, error)

func (*SshHostEndpoint) MarshalVT

func (m *SshHostEndpoint) MarshalVT() (dAtA []byte, err error)

func (*SshHostEndpoint) ProtoMessage

func (*SshHostEndpoint) ProtoMessage()

func (*SshHostEndpoint) Reset

func (x *SshHostEndpoint) Reset()

func (*SshHostEndpoint) SizeVT

func (m *SshHostEndpoint) SizeVT() (n int)

func (*SshHostEndpoint) String

func (x *SshHostEndpoint) String() string

func (*SshHostEndpoint) UnmarshalJSON

func (x *SshHostEndpoint) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHostEndpoint from JSON.

func (*SshHostEndpoint) UnmarshalProtoJSON

func (x *SshHostEndpoint) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHostEndpoint message from JSON.

func (*SshHostEndpoint) UnmarshalVT

func (m *SshHostEndpoint) UnmarshalVT(dAtA []byte) error

type SshHostKeyPin

type SshHostKeyPin struct {

	// Algorithm is the SSH host key algorithm, such as ssh-ed25519.
	Algorithm string `protobuf:"bytes,1,opt,name=algorithm,proto3" json:"algorithm,omitempty"`
	// PublicKey is the accepted host public key in authorized-key format.
	PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"publicKey,omitempty"`
	// Sha256Fingerprint is the accepted host key SHA256 fingerprint.
	Sha256Fingerprint string `protobuf:"bytes,3,opt,name=sha256_fingerprint,json=sha256Fingerprint,proto3" json:"sha256Fingerprint,omitempty"`
	// AcceptedAt is when this key was accepted.
	AcceptedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=accepted_at,json=acceptedAt,proto3" json:"acceptedAt,omitempty"`
	// AcceptedByPeerId is the peer that accepted this trust decision.
	AcceptedByPeerId string `protobuf:"bytes,5,opt,name=accepted_by_peer_id,json=acceptedByPeerId,proto3" json:"acceptedByPeerId,omitempty"`
	// contains filtered or unexported fields
}

SshHostKeyPin records the host key the user accepted for this SSH Host.

func NewSshHostKeyPinFromPublicKey added in v0.52.0

func NewSshHostKeyPinFromPublicKey(key ssh.PublicKey, acceptedAt time.Time, acceptedByPeerID string) *SshHostKeyPin

NewSshHostKeyPinFromPublicKey builds the durable SSH Host trust record for a user-accepted key.

func (*SshHostKeyPin) CloneMessageVT

func (m *SshHostKeyPin) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*SshHostKeyPin) CloneVT

func (m *SshHostKeyPin) CloneVT() *SshHostKeyPin

func (*SshHostKeyPin) EqualMessageVT

func (this *SshHostKeyPin) EqualMessageVT(thatMsg any) bool

func (*SshHostKeyPin) EqualVT

func (this *SshHostKeyPin) EqualVT(that *SshHostKeyPin) bool

func (*SshHostKeyPin) GetAcceptedAt

func (x *SshHostKeyPin) GetAcceptedAt() *timestamppb.Timestamp

func (*SshHostKeyPin) GetAcceptedByPeerId

func (x *SshHostKeyPin) GetAcceptedByPeerId() string

func (*SshHostKeyPin) GetAlgorithm

func (x *SshHostKeyPin) GetAlgorithm() string

func (*SshHostKeyPin) GetPublicKey

func (x *SshHostKeyPin) GetPublicKey() string

func (*SshHostKeyPin) GetSha256Fingerprint

func (x *SshHostKeyPin) GetSha256Fingerprint() string

func (*SshHostKeyPin) MarshalJSON

func (x *SshHostKeyPin) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHostKeyPin to JSON.

func (*SshHostKeyPin) MarshalProtoJSON

func (x *SshHostKeyPin) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHostKeyPin message to JSON.

func (*SshHostKeyPin) MarshalProtoText

func (x *SshHostKeyPin) MarshalProtoText() string

func (*SshHostKeyPin) MarshalToSizedBufferVT

func (m *SshHostKeyPin) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SshHostKeyPin) MarshalToVT

func (m *SshHostKeyPin) MarshalToVT(dAtA []byte) (int, error)

func (*SshHostKeyPin) MarshalVT

func (m *SshHostKeyPin) MarshalVT() (dAtA []byte, err error)

func (*SshHostKeyPin) ProtoMessage

func (*SshHostKeyPin) ProtoMessage()

func (*SshHostKeyPin) Reset

func (x *SshHostKeyPin) Reset()

func (*SshHostKeyPin) SizeVT

func (m *SshHostKeyPin) SizeVT() (n int)

func (*SshHostKeyPin) String

func (x *SshHostKeyPin) String() string

func (*SshHostKeyPin) UnmarshalJSON

func (x *SshHostKeyPin) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHostKeyPin from JSON.

func (*SshHostKeyPin) UnmarshalProtoJSON

func (x *SshHostKeyPin) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHostKeyPin message from JSON.

func (*SshHostKeyPin) UnmarshalVT

func (m *SshHostKeyPin) UnmarshalVT(dAtA []byte) error

type SshHostProbeState

type SshHostProbeState int32

SshHostProbeState is the last observed SSH reachability state.

const (
	// SSH_HOST_PROBE_STATE_UNKNOWN is unset or not yet probed.
	SshHostProbeState_SSH_HOST_PROBE_STATE_UNKNOWN SshHostProbeState = 0
	// SSH_HOST_PROBE_STATE_READY means the host was reachable with trusted keys.
	SshHostProbeState_SSH_HOST_PROBE_STATE_READY SshHostProbeState = 1
	// SSH_HOST_PROBE_STATE_FAILED means the last SSH probe failed.
	SshHostProbeState_SSH_HOST_PROBE_STATE_FAILED SshHostProbeState = 2
)

func (SshHostProbeState) Enum

func (SshHostProbeState) MarshalJSON

func (x SshHostProbeState) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHostProbeState to JSON.

func (SshHostProbeState) MarshalProtoJSON

func (x SshHostProbeState) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHostProbeState to JSON.

func (SshHostProbeState) MarshalProtoText

func (x SshHostProbeState) MarshalProtoText() string

func (SshHostProbeState) MarshalText

func (x SshHostProbeState) MarshalText() ([]byte, error)

MarshalText marshals the SshHostProbeState to text.

func (SshHostProbeState) String

func (x SshHostProbeState) String() string

func (*SshHostProbeState) UnmarshalJSON

func (x *SshHostProbeState) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHostProbeState from JSON.

func (*SshHostProbeState) UnmarshalProtoJSON

func (x *SshHostProbeState) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHostProbeState from JSON.

func (*SshHostProbeState) UnmarshalText

func (x *SshHostProbeState) UnmarshalText(b []byte) error

UnmarshalText unmarshals the SshHostProbeState from text.

type SshHostResource

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

SshHostResource implements the SshHostResourceService SRPC interface.

func NewSshHostResource

func NewSshHostResource(ws world.WorldState, objKey string, state *SshHost) *SshHostResource

NewSshHostResource creates a new SshHostResource.

func (*SshHostResource) GetMux

func (r *SshHostResource) GetMux() srpc.Mux

GetMux returns the srpc mux for this resource.

func (*SshHostResource) WatchSshHostState

WatchSshHostState streams SSH Host state changes from world object revisions.

type SshHostStatus

type SshHostStatus struct {

	// State is the last observed SSH probe state.
	State SshHostProbeState `protobuf:"varint,1,opt,name=state,proto3" json:"state,omitempty"`
	// Message is a short status message.
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	// Error is the last redacted SSH error, if any.
	Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	// ObservedAt is when this status was observed.
	ObservedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=observed_at,json=observedAt,proto3" json:"observedAt,omitempty"`
	// contains filtered or unexported fields
}

SshHostStatus is redacted operator-visible SSH Host status.

func (*SshHostStatus) CloneMessageVT

func (m *SshHostStatus) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*SshHostStatus) CloneVT

func (m *SshHostStatus) CloneVT() *SshHostStatus

func (*SshHostStatus) EqualMessageVT

func (this *SshHostStatus) EqualMessageVT(thatMsg any) bool

func (*SshHostStatus) EqualVT

func (this *SshHostStatus) EqualVT(that *SshHostStatus) bool

func (*SshHostStatus) GetError

func (x *SshHostStatus) GetError() string

func (*SshHostStatus) GetMessage

func (x *SshHostStatus) GetMessage() string

func (*SshHostStatus) GetObservedAt

func (x *SshHostStatus) GetObservedAt() *timestamppb.Timestamp

func (*SshHostStatus) GetState

func (x *SshHostStatus) GetState() SshHostProbeState

func (*SshHostStatus) MarshalJSON

func (x *SshHostStatus) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SshHostStatus to JSON.

func (*SshHostStatus) MarshalProtoJSON

func (x *SshHostStatus) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the SshHostStatus message to JSON.

func (*SshHostStatus) MarshalProtoText

func (x *SshHostStatus) MarshalProtoText() string

func (*SshHostStatus) MarshalToSizedBufferVT

func (m *SshHostStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*SshHostStatus) MarshalToVT

func (m *SshHostStatus) MarshalToVT(dAtA []byte) (int, error)

func (*SshHostStatus) MarshalVT

func (m *SshHostStatus) MarshalVT() (dAtA []byte, err error)

func (*SshHostStatus) ProtoMessage

func (*SshHostStatus) ProtoMessage()

func (*SshHostStatus) Reset

func (x *SshHostStatus) Reset()

func (*SshHostStatus) SizeVT

func (m *SshHostStatus) SizeVT() (n int)

func (*SshHostStatus) String

func (x *SshHostStatus) String() string

func (*SshHostStatus) UnmarshalJSON

func (x *SshHostStatus) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the SshHostStatus from JSON.

func (*SshHostStatus) UnmarshalProtoJSON

func (x *SshHostStatus) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the SshHostStatus message from JSON.

func (*SshHostStatus) UnmarshalVT

func (m *SshHostStatus) UnmarshalVT(dAtA []byte) error

type WatchSshHostStateRequest

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

WatchSshHostStateRequest is a request to watch SSH Host state.

func (*WatchSshHostStateRequest) CloneMessageVT

func (*WatchSshHostStateRequest) CloneVT

func (*WatchSshHostStateRequest) EqualMessageVT

func (this *WatchSshHostStateRequest) EqualMessageVT(thatMsg any) bool

func (*WatchSshHostStateRequest) EqualVT

func (*WatchSshHostStateRequest) MarshalJSON

func (x *WatchSshHostStateRequest) MarshalJSON() ([]byte, error)

MarshalJSON marshals the WatchSshHostStateRequest to JSON.

func (*WatchSshHostStateRequest) MarshalProtoJSON

func (x *WatchSshHostStateRequest) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the WatchSshHostStateRequest message to JSON.

func (*WatchSshHostStateRequest) MarshalProtoText

func (x *WatchSshHostStateRequest) MarshalProtoText() string

func (*WatchSshHostStateRequest) MarshalToSizedBufferVT

func (m *WatchSshHostStateRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*WatchSshHostStateRequest) MarshalToVT

func (m *WatchSshHostStateRequest) MarshalToVT(dAtA []byte) (int, error)

func (*WatchSshHostStateRequest) MarshalVT

func (m *WatchSshHostStateRequest) MarshalVT() (dAtA []byte, err error)

func (*WatchSshHostStateRequest) ProtoMessage

func (*WatchSshHostStateRequest) ProtoMessage()

func (*WatchSshHostStateRequest) Reset

func (x *WatchSshHostStateRequest) Reset()

func (*WatchSshHostStateRequest) SizeVT

func (m *WatchSshHostStateRequest) SizeVT() (n int)

func (*WatchSshHostStateRequest) String

func (x *WatchSshHostStateRequest) String() string

func (*WatchSshHostStateRequest) UnmarshalJSON

func (x *WatchSshHostStateRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the WatchSshHostStateRequest from JSON.

func (*WatchSshHostStateRequest) UnmarshalProtoJSON

func (x *WatchSshHostStateRequest) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the WatchSshHostStateRequest message from JSON.

func (*WatchSshHostStateRequest) UnmarshalVT

func (m *WatchSshHostStateRequest) UnmarshalVT(dAtA []byte) error

type WatchSshHostStateResponse

type WatchSshHostStateResponse struct {

	// State is the current SSH Host block state.
	State *SshHost `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	// contains filtered or unexported fields
}

WatchSshHostStateResponse contains the current SSH Host state.

func (*WatchSshHostStateResponse) CloneMessageVT

func (*WatchSshHostStateResponse) CloneVT

func (*WatchSshHostStateResponse) EqualMessageVT

func (this *WatchSshHostStateResponse) EqualMessageVT(thatMsg any) bool

func (*WatchSshHostStateResponse) EqualVT

func (*WatchSshHostStateResponse) GetState

func (x *WatchSshHostStateResponse) GetState() *SshHost

func (*WatchSshHostStateResponse) MarshalJSON

func (x *WatchSshHostStateResponse) MarshalJSON() ([]byte, error)

MarshalJSON marshals the WatchSshHostStateResponse to JSON.

func (*WatchSshHostStateResponse) MarshalProtoJSON

func (x *WatchSshHostStateResponse) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the WatchSshHostStateResponse message to JSON.

func (*WatchSshHostStateResponse) MarshalProtoText

func (x *WatchSshHostStateResponse) MarshalProtoText() string

func (*WatchSshHostStateResponse) MarshalToSizedBufferVT

func (m *WatchSshHostStateResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*WatchSshHostStateResponse) MarshalToVT

func (m *WatchSshHostStateResponse) MarshalToVT(dAtA []byte) (int, error)

func (*WatchSshHostStateResponse) MarshalVT

func (m *WatchSshHostStateResponse) MarshalVT() (dAtA []byte, err error)

func (*WatchSshHostStateResponse) ProtoMessage

func (*WatchSshHostStateResponse) ProtoMessage()

func (*WatchSshHostStateResponse) Reset

func (x *WatchSshHostStateResponse) Reset()

func (*WatchSshHostStateResponse) SizeVT

func (m *WatchSshHostStateResponse) SizeVT() (n int)

func (*WatchSshHostStateResponse) String

func (x *WatchSshHostStateResponse) String() string

func (*WatchSshHostStateResponse) UnmarshalJSON

func (x *WatchSshHostStateResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the WatchSshHostStateResponse from JSON.

func (*WatchSshHostStateResponse) UnmarshalProtoJSON

func (x *WatchSshHostStateResponse) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the WatchSshHostStateResponse message from JSON.

func (*WatchSshHostStateResponse) UnmarshalVT

func (m *WatchSshHostStateResponse) UnmarshalVT(dAtA []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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