Compare commits

..

3 commits

Author SHA1 Message Date
59d4d54945 checker: lower minimum check interval to 5 minutes
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2026-05-15 17:19:45 +08:00
9a134665fe checker: make port 22 probe optional
Port 22 is now the default when no ports are configured, rather than
being unconditionally appended. Users can now probe non-standard ports
without also probing port 22.
2026-05-15 17:19:15 +08:00
8b86eb6a8b checker: enforce prober-as-observation, move all analysis to rules layer 2026-05-15 17:06:02 +08:00
2 changed files with 25 additions and 25 deletions

View file

@ -89,19 +89,19 @@ type reportSSHFPRecord struct {
}
type reportEndpoint struct {
Address string
Host string
Port uint16
IsIPv6 bool
DialFailed bool
Banner string
SoftwareVer string
Vendor string
ElapsedMS int64
Error string
StatusLabel string
StatusClass string
AnyFail bool
Address string
Host string
Port uint16
IsIPv6 bool
DialFailed bool
Banner string
SoftwareVer string
Vendor string
ElapsedMS int64
Error string
StatusLabel string
StatusClass string
AnyFail bool
HostKeys []reportHostKey
AlgoTables []reportAlgoTable
@ -265,16 +265,16 @@ func buildReportData(d *SSHData, states []sdk.CheckState) reportView {
for _, ep := range d.Endpoints {
re := reportEndpoint{
Address: ep.Addr(),
Host: ep.Host,
Port: ep.Port,
IsIPv6: ep.IP != nil && ep.IP.To4() == nil,
DialFailed: ep.Stage == "dial",
Banner: ep.Banner,
SoftwareVer: ep.SoftVer,
Vendor: ep.Vendor,
ElapsedMS: ep.ElapsedMS,
Error: ep.Error,
Address: ep.Addr(),
Host: ep.Host,
Port: ep.Port,
IsIPv6: ep.IP != nil && ep.IP.To4() == nil,
DialFailed: ep.Stage == "dial",
Banner: ep.Banner,
SoftwareVer: ep.SoftVer,
Vendor: ep.Vendor,
ElapsedMS: ep.ElapsedMS,
Error: ep.Error,
}
if ep.IP != nil && ep.IP.To4() == nil {
v.AnyIPv6 = true

View file

@ -133,8 +133,8 @@ func (p SSHProbe) Addr() string {
// HostKeyInfo captures an observed host key in its SSH wire format.
type HostKeyInfo struct {
Type string `json:"type"` // e.g. "ssh-ed25519"
RawKey []byte `json:"key"` // SSH wire format (ssh.PublicKey.Marshal())
Type string `json:"type"` // e.g. "ssh-ed25519"
RawKey []byte `json:"key"` // SSH wire format (ssh.PublicKey.Marshal())
}
// Issue is a single SSH finding surfaced to consumers.