Files

1.3 KiB

M10 SSH source evidence

The released source capability is ssh: private-key-only, pinned-host-key, forced-SFTP chroot access. No password, shell, command channel, agent, default key discovery, or arbitrary remote root is supported.

Fixture

tests/compose.ssh.yaml builds a test-only OpenSSH server. Each run generates host and client Ed25519 keys under pytest tmp_path, mounts no committed keys, and configures a dedicated backup account with ChrootDirectory /home/backup and ForceCommand internal-sftp. The ordinary operator Compose stack is not modified. Run make test-ssh-integration to build, run, and tear down the fixture.

Verification

  • Fake transport tests cover pin mismatch before authentication/SFTP, bounded reads, unsafe entries, and accepted/rejected private-key algorithms.
  • The opt-in live test covers a private-key probe, backup, signed verification, and restore through the forced-SFTP fixture.
  • make test-ssh-integration passed after fixture isolation and SFTP-channel concurrency fixes.
  • Final make check passed: 107 unit/contract, 73 integration (one skipped), 15 fault, and 33 security tests; Ruff, mypy, TypeScript, and the frontend build passed.

See docs/runbooks/ssh-sources.md for deployment prerequisites, rotation, and containment limitations.