types

package
v0.0.1-beta Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnAdmissionComponent

type ConnAdmissionComponent interface {
	// AllowConn 是否允许该连接继续
	// 返回 false 表示立即断开
	AllowConn(request *SSHRequest) (allow bool)
}

ConnAdmissionComponent 决定一个 TCP 连接是否允许进入 SSH 流程

type HandleClientVersionStrategy

type HandleClientVersionStrategy interface {
	HandleVersion(request *SSHRequest, clientVersion string) (allow bool)
}

HandleClientVersionStrategy 检查客户端版本处理策略

type HoneypotHandler

type HoneypotHandler interface {
	ConnAdmission() ConnAdmissionComponent
	VersionExchange() VersionExchangeComponent
	SSHSettings() SSHSettingsComponent
}

type SSHPasswordAuthStrategy

type SSHPasswordAuthStrategy interface {
	// Auth 账户密码认证
	Auth(request *SSHRequest, password string) (*ssh.Permissions, error)
}

SSHPasswordAuthStrategy SSH密码登录

type SSHPublicKeyAuthStrategy

type SSHPublicKeyAuthStrategy interface {
	// KeyPreCheck 公钥预检查
	KeyPreCheck(request *SSHRequest, publicKey ssh.PublicKey) (*ssh.Permissions, error)
	// VerifySignedData 验证客户端签名的数据
	VerifySignedData(request *SSHRequest, key ssh.PublicKey, permissions *ssh.Permissions, signatureAlgorithm string) (*ssh.Permissions, error)
}

SSHPublicKeyAuthStrategy SSH公钥登录

type SSHRequest

type SSHRequest struct {
	ListenedPort int
	// 客户端信息
	IP   string
	Port int
	// contains filtered or unexported fields
}

func (*SSHRequest) IPInfo

func (r *SSHRequest) IPInfo() string

type SSHSettingsComponent

type SSHSettingsComponent interface {
	// HostKeyPair 提供主机私钥管理器
	HostKeyPair() asymmetric.KeyPair

	// NoAuth 是否无需认证
	NoAuth() bool

	// MaxAuthTries 最大认证尝试次数
	MaxAuthTries() int

	// PasswordAuthStrategy 密码验证策略
	PasswordAuthStrategy() SSHPasswordAuthStrategy

	// PublicKeyAuthStrategy 公钥验证策略
	PublicKeyAuthStrategy() SSHPublicKeyAuthStrategy
}

SSHSettingsComponent 描述 SSH 设置

type ShowServerVersionStrategy

type ShowServerVersionStrategy interface {
	// ShowVersion 响应服务端版本
	// delayResponseSec >= 0时 将执行延迟响应
	ShowVersion(request *SSHRequest) (allow bool, delayResponseSec int, serverVersion string)
}

ShowServerVersionStrategy 描述服务端版本处理策略

type VersionExchangeComponent

type VersionExchangeComponent interface {

	// ClientVersionStrategies 注册检查客户端版本处理策略
	ClientVersionStrategies() map[string]HandleClientVersionStrategy

	// ChooseHandleClientVersionStrategy 注册选择客户端版本处理策略方法
	ChooseHandleClientVersionStrategy(request *SSHRequest, strategies map[string]HandleClientVersionStrategy) (string, HandleClientVersionStrategy)

	// ServerVersionStrategies 注册响应服务端版本处理的所有策略
	ServerVersionStrategies() map[string]ShowServerVersionStrategy

	// ChooseShowServerVersionStrategy 注册选择服务端版本处理策略方法
	ChooseShowServerVersionStrategy(request *SSHRequest, strategies map[string]ShowServerVersionStrategy) (string, ShowServerVersionStrategy)
}

VersionExchangeComponent 控制 SSH 版本交换阶段

Jump to

Keyboard shortcuts

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