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 版本交换阶段
Click to show internal directories.
Click to hide internal directories.