• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

skeema / knownhosts / 9963479832
92%

Build:
DEFAULT BRANCH: main
Ran 16 Jul 2024 08:14PM UTC
Jobs 1
Files 1
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jul 2024 08:14PM UTC coverage: 93.305% (+0.4%) from 92.857%
9963479832

push

github

web-flow
host matching: handle wildcards with non-standard port (#10)

In OpenSSH, wildcard host pattern entries in a known_hosts file can match
hosts regardless of their port number. However, x/crypto/ssh/knownhosts does
not follow this behavior, instead requiring strict port equality; see bug
https://github.com/golang/go/issues/52056 for background.

This commit implements a workaround in skeema/knownhosts, which is enabled
when using the NewDB constructor. Conceptually, the workaround works like
this:

* At constructor time, when re-reading the known_hosts file (originally to
  look for @cert-authority lines), also look for lines that have wildcards
  in the host pattern and no port number specified. Track these lines in a
  new field of the HostKeyDB struct for later use.

* When a host key callback returns no matches (KeyError with empty Want slice)
  and the host had a nonstandard (non-22) port number, try the callback again,
  this time manipulating the host arg to be on port 22.

* If this second call returned nil error, that means the host key now matched
  a known_hosts entry on port 22, so consider the host as known.

* If this second call returned a KeyError with non-empty Want slice, filter
  down the resulting keys to only correspond to lines with known wildcards,
  using the preprocessed information from the first step. This ensures we
  aren't incorrectly returning non-wildcard entries among the Want slice.

The implementation for the latter 3 bullets gets embedded directly in the
host key callback returned by HostKeyDB.HostKeyCallback, by way of some
nested callback wrapping. This only happens if the first bullet actually
found at least one wildcard in the file.

49 of 51 new or added lines in 1 file covered. (96.08%)

223 of 239 relevant lines covered (93.31%)

20.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 9963479832.1 16 Jul 2024 08:14PM UTC 0
93.31
GitHub Action Run
Source Files on build 9963479832
Detailed source file information is not available for this build.
  • Back to Repo
  • 8b8ca37f on github
  • Prev Build on main (#9914091887)
  • Next Build on main (#9964291783)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc