pub enum Error {
Show 38 variants
HomeNotFound,
KeyNotFound(String),
KeyExists(String),
KeyParseFailed(String),
KeyGenerationFailed(String),
InvalidKeyName(String),
PassphraseRequired,
UnsupportedKeyFormat(String),
ConfigParseFailed(String),
ManagedBlockNotFound(String),
ConfigWriteFailed(String),
HostNotFound(String),
DuplicateHost(String),
ConfigIncludeCycle(String),
TokenExpansionFailed {
token: Box<str>,
reason: Box<str>,
},
KnownHostsParseFailed(String),
HostNotKnown(String),
AuthorizedKeysParseFailed(String),
AuthorizedKeysWriteFailed(String),
AgentNotAvailable,
AgentOperationFailed(String),
AgentKeyNotFound(String),
CheckFailed(String),
CertificateParseFailed(String),
CertificateExpired(String),
CertificateNotYetValid(String),
KrlParseFailed(String),
ForwardFailed(String),
ForwardNotFound(String),
ToolNotFound(String),
CommandFailed(String),
CommandParseFailed(String),
PermissionDenied(String),
SudoFailed(String),
SshdConfigInvalid(String),
SshdNotFound(String),
Io(Error),
TaskFailed(String),
}Expand description
Errors returned by toride-ssh operations.
Variants§
HomeNotFound
User home directory could not be resolved.
KeyNotFound(String)
No key found at the specified path or name.
KeyExists(String)
A key already exists at the target path.
KeyParseFailed(String)
Failed to parse a key file.
KeyGenerationFailed(String)
Key generation failed.
InvalidKeyName(String)
Key name validation failed (empty, path traversal, etc.).
PassphraseRequired
The key requires a passphrase but none was provided.
UnsupportedKeyFormat(String)
Key format is not supported (e.g. SEC1, legacy PEM).
ConfigParseFailed(String)
Failed to parse ~/.ssh/config.
ManagedBlockNotFound(String)
Managed block not found in config.
ConfigWriteFailed(String)
Failed to write ~/.ssh/config.
HostNotFound(String)
No Host block matches the given alias.
DuplicateHost(String)
Multiple Host blocks share the same alias.
ConfigIncludeCycle(String)
An Include chain forms a cycle.
TokenExpansionFailed
Token (%h, %d, etc.) could not be expanded.
KnownHostsParseFailed(String)
Failed to parse known_hosts.
HostNotKnown(String)
Host not present in known_hosts.
AuthorizedKeysParseFailed(String)
Failed to parse authorized_keys.
AuthorizedKeysWriteFailed(String)
Failed to write authorized_keys.
AgentNotAvailable
SSH agent socket not found or unreachable.
AgentOperationFailed(String)
Agent rejected the operation.
AgentKeyNotFound(String)
Key not loaded in the agent.
CheckFailed(String)
A diagnostic check itself failed.
CertificateParseFailed(String)
Failed to parse an SSH certificate.
CertificateExpired(String)
Certificate has expired.
CertificateNotYetValid(String)
Certificate is not yet valid.
KrlParseFailed(String)
Failed to parse a Key Revocation List.
ForwardFailed(String)
Port forwarding setup failed.
ForwardNotFound(String)
No matching port forward found.
ToolNotFound(String)
Required CLI tool not found in PATH.
CommandFailed(String)
External command returned a non-zero exit code.
CommandParseFailed(String)
Could not parse external command output.
PermissionDenied(String)
Filesystem permission error.
SudoFailed(String)
A privileged command (run via sudo -n or as root) failed.
Includes the command’s stderr so the UI can surface a useful message (e.g. “sudo: a password is required”).
SshdConfigInvalid(String)
The new sshd_config was rejected by sshd -t.
Carries sshd’s diagnostic output explaining why the config is invalid.
The write is aborted before the live config is touched.
SshdNotFound(String)
The sshd binary could not be found, so the new config could not be
validated.
We fail closed rather than installing an unvalidatable config: a bad
sshd_config can lock the user out of SSH, so we never install one we
could not check. Carries the detail we observed (e.g. the privileged
invocation’s stderr).
Io(Error)
Underlying I/O error.
TaskFailed(String)
Background task panicked or was cancelled.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()