Commit Graph

12 Commits

Author SHA1 Message Date
nevaforget d01a358f35 refactor: harden ssh_config handling, mount path, and CLI UX from audit findings
Update PKGBUILD version / update-pkgver (push) Successful in 3s
Three rounds of audit-driven hardening, fully documented in DECISIONS.md:

- argv hardening: validate HostName/User/IdentityFile via allowlist regexes,
  parse Port via strconv.Atoi, surface ssh_config parse errors instead of
  silently swallowing them. Switch -o kernel_cache to auto_cache for network-
  FS correctness, pin StrictHostKeyChecking=accept-new.
- LOW-severity cleanup: -v verbose flag (default output is just the mount
  path), run_editor returns errors and main exits 7 on failure, ABOUTME
  headers, golang.org/x/sys v0.43.0 (go 1.25.0).
- Defense-in-depth + UX: rxIdentityFile first-character anchor rejects
  leading "-"/"."/":"/etc., verify_mount_dir resolves base via EvalSymlinks
  and refuses pre-existing symlinks at the mount path, flag.Usage shows the
  positional <Host> argument, run_editor uses cmd.Start() so cold-start
  Sublime does not block the terminal.
- CI: empty-PKGVER guard in update-pkgver workflow.
- Tests: verify_mount_dir path-traversal + symlink-reject coverage,
  rxHostUser/rxIdentityFile boundary cases.
2026-04-26 11:24:45 +02:00
nevaforget 967d5d74cc chore: ignore sshfsc build artifact 2026-04-26 10:38:06 +02:00
nevaforget 64a65031b8 feat: mount remote home dir by default
Less surprising than mounting / — users typically want their own
files, and accessing system paths still works via absolute paths.
2026-04-26 10:37:19 +02:00
nevaforget 70181d9215 fix: propagate errors and harden mount path handling
Addresses audit findings from 2026-04-19:

- Q-H1: replace Println with Printf for %s-formatted error (line 42)
- Q-H2/Q-M2/Q-M3: verify_mount_dir and mount_sshfs now return error;
  main exits on failure instead of continuing with invalid state
- Q-M1: default Port to "22" when ssh_config has no entry
- S-M1: create mount dir with 0700 instead of 0777
- S-M2: filepath.Clean + base-prefix check rejects HostName values
  that would escape ~/Servers/
- Q-L1: correct "~/.ssh_config" typo to "~/.ssh/config"

Also: use os.Exit(2) for usage error (was 80), route user-facing
errors to stderr.
2026-04-19 15:41:33 +02:00
nevaforget ba895624c3 ci: retrigger update-pkgver
Update PKGBUILD version / update-pkgver (push) Successful in 2s
2026-04-19 15:30:12 +02:00
nevaforget af3375b343 ci: harden update-pkgver workflow with fail-loud checks
Update PKGBUILD version / update-pkgver (push) Failing after 0s
2026-04-19 15:27:54 +02:00
nevaforget eb93777faa feat: package as sshfsc for Moonarch repo
Update PKGBUILD version / update-pkgver (push) Has been cancelled
- Add MIT LICENSE
- Rename Go module sshfs_connect -> sshfsc
- Update README with Moonarch install instructions
- Add Gitea workflow to auto-bump pkgver in moonarch-pkgbuilds
v0.1.0
2026-04-19 14:29:57 +02:00
nevaforget 40961b10c0 Add SSHFS performance options
Replace minimal mount flags (dir_cache=no) with aggressive caching
and connection tuning: kernel_cache, attr/entry/negative timeouts,
fast cipher (aes128-gcm), reconnect with keepalive.
2026-04-14 11:50:33 +02:00
nevaforget 962ef84675 README.md aktualisiert 2025-02-04 12:37:51 +01:00
nevaforget 31517c7a00 README.md aktualisiert 2025-02-04 12:35:32 +01:00
nevaforget a56b6578c3 README 2025-02-04 12:33:52 +01:00
nevaforget 6e51a7cc40 init 2025-02-04 12:13:16 +01:00