Use repository Git remotes and SSH config
Some checks failed
Dependency security audit / rustsec (push) Has been cancelled

This commit is contained in:
Georg Bauer
2026-08-26 09:32:21 +02:00
parent a3da9fda69
commit 300ccf5f1f
7 changed files with 316 additions and 23 deletions

View File

@@ -92,8 +92,10 @@ ssh_agent_socket = "/run/user/1000/ssh-agent.socket"
```
Private-key passphrases are stored by fingerprint in the operating-system
secret store and never appear in TOML. IronStorage does not read OpenSSH
configuration, try additional keys, prompt for passwords or
secret store and never appear in TOML. Desktop builds obtain remotes from the
password-store repository and honor the connection-only `Host`, `HostName`,
`User`, `Port`, and `IdentityFile` directives in `~/.ssh/config`. IronStorage
does not try additional keys, prompt for passwords or
keyboard-interactive authentication, launch an agent, or invoke proxy/helper
commands. The normal CLI, TUI, and desktop builds enable the storage `ssh`
feature, so the same configuration drives

View File

@@ -50,13 +50,16 @@ are read with size and line bounds; exact, hashed, and bracketed non-default
port entries are supported. Unknown keys require an explicit call to persist
the confirmed key atomically. Changed keys always fail and are never replaced.
Authentication uses one configured OpenSSH private-key file (Ed25519, ECDSA,
or RSA) or one exact SHA-256 fingerprint from an already-running SSH agent.
Desktop applications take remote names and URLs from the password-store's
`.git/config`. Authentication uses the matching `~/.ssh/config` identity or an
explicit OpenSSH private-key file (Ed25519, ECDSA, or RSA), or one exact SHA-256
fingerprint from an already-running SSH agent.
Encrypted-key passphrases come from `SecretBytes` in the operating-system
secret store. Identity attempts are bounded and deterministic; IronStorage
does not spray keys, use passwords or keyboard-interactive authentication,
read OpenSSH configuration, start/probe an agent process, or run proxy/helper
commands. The explicit client allowlist excludes SHA-1 key exchange/MAC,
start/probe an agent process or run proxy/helper commands. The in-process
client reads `Host`, `HostName`, `User`, `Port`, and `IdentityFile`; executable
OpenSSH directives remain disabled. The explicit client allowlist excludes SHA-1 key exchange/MAC,
RSA/SHA-1 signatures, DSA, CBC, `none`, compression, and host certificates.
Cancellation interrupts connection and authentication without changing Git,
known hosts, or secure storage.

View File

@@ -85,8 +85,9 @@ host/key interaction design.
## Deliberate OpenSSH differences
IronStorage does not read arbitrary OpenSSH configuration, `ProxyCommand`,
`Match`, URL rewrites, separate push URLs, host certificates, password or
IronStorage reads the connection-only `Host`, `HostName`, `User`, `Port`, and
`IdentityFile` directives from OpenSSH configuration. It does not support
`ProxyCommand`, `Match`, URL rewrites, separate push URLs, host certificates, password or
keyboard-interactive authentication, agent forwarding, arbitrary remote
commands, local transport helpers, or local-path remotes. These are explicit
security boundaries, not partial implementations. HTTPS smart Git remains the