Repository navigation
Add Linux Ed25519 SSH daemon with interactive PTY sessions - #2
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
## Summary
Add a Linux NoxSSH daemon on current master, integrating the earlier server branch with current client changes.
authorized_keysauthentication for local OS users, persistent protected host key, Linuxgetrandom, six-attempt authentication limit.--check-user accountperforms read-only authentication preflight without creating a host key or binding a socket.--print-host-public-keycreates or reads the protected host seed and prints only the public SSH key for UART-trusted pinning.Validation
CMake build and CTest passed in Ubuntu 24.04 VM. Windows OpenSSH authenticated with an existing authorized Ed25519 key, ran remote exec, PTY exec, interactive shell, 10,000 output lines, and propagated exit code 7. Invalid username and wrong key were rejected.
CI run 38345405100 passed Linux x86_64/ARM64 and macOS x86_64/ARM64. Linux smoke covers valid/invalid account preflight, malformed/writable key rejection, deterministic public host key reuse, OpenSSH exec, 11-second quiet child exit status, PTY shell, invalid-user rejection, and NoxSSH client interoperability.
The
04d265bserver binary ran on the actual KC705 RV64 Linux system, controlled over UART and bound only to loopback127.0.0.1:2222. Exec (id,uname), PTY, an 11-second quiet command returning 9, invalid OS user, and wrong-key rejection passed. The persistent SD host seed had root ownership and mode 0600; public fingerprintSHA256:1Cb2ywW9q2npFNJLYnYhWWgCRALJVdY5Pj1WiD33SbM. Operator cleanup status was 0. Evidence:E:/MPUNoxV_build_artifacts/ethernet_20261012/noxssh-loopback-04d265b.log.Physical KC705 Ethernet, 2026-10-13
Yocto-pinned source1ef8774 ran on actual KC705 Linux6.18.39, both harts at200MHz, through the board RJ45 and our GMII MAC/Marvell88E1111 address7 at1000/full. Both DMA and corrected PIO configurations passed strict trusted-host Ed25519 authentication, exec/PTY, quiet11-second exit9, invalid-account/key rejection and exact262144-byte upload/download checksums. The PIO reboot automatically started NoxSSH2222 from persistent configuration and retained the same host fingerprint. Actual --check-user root succeeded. RX buffer/no-descriptor drops were recorded; no line-rate, zero-drop, physical power-cycle or clock-loss qualification is claimed.
DMA transferSHA2564a26d10d0747718f9b3d0788eeab640357c2e06d79e08747ac787662764a99b7; PIO transferSHA2569e2675e51d78132dfe1d4da1d8875dcb13e1b5534bedd8f45f176e46eb1cff85. Evidence: E:/MPUNoxV_build_artifacts/ethernet_qualification_20261013/dma-hpm-7e390d9-noxssh-physical-supplier/result.json and pio-v2-hpm-7e390d9-noxssh-persistent/result.json.
Docs now cover physical results, the512-byte exec limit, explicit sbin PATH, current public-key API/Linux PTY support and mandatory OS CSPRNG; stale password/rand/backend claims were removed. Documentation-only sourcea397eb9 does not change the tested1ef8774 binary.
Remaining integration gate
Finish monitor-enabled routed hardware, actual clock/carrier and active-DMA recovery, persistent default-port deployment and repeated boot evidence in the platform/BSP effort. Physical Ethernet authentication and transfer have passed; loopback is retained as earlier provenance.