pub enum Error {
Io(Error),
Ssh(String),
Russh(Error),
Key(String),
KeyLoad(Error),
AuthenticationFailed,
MaxSessionsReached {
max: usize,
current: usize,
},
Configuration(String),
Session(String),
AddrParse(AddrParseError),
}Expand description
Errors that can occur in the wish SSH server library.
This enum represents all possible error conditions when running an SSH server with wish.
§Error Handling
SSH server errors range from configuration issues to runtime
authentication failures. Use the ? operator for propagation:
use wish::Result;
async fn run_server() -> Result<()> {
let server = Server::new(handler).await?;
server.listen("0.0.0.0:2222").await?;
Ok(())
}§Recovery Strategies
| Error Variant | Recovery Strategy |
|---|---|
Io | Check permissions, port availability |
Ssh | Log and continue for recoverable errors |
Russh | Check SSH protocol compatibility |
Key | Regenerate keys or check permissions |
KeyLoad | Verify key file format |
AuthenticationFailed | Expected for invalid credentials |
MaxSessionsReached | Retry later or raise configured session limit |
Configuration | Fix server configuration |
Session | Close session gracefully |
AddrParse | Validate address format |
Variants§
Io(Error)
I/O error during server operations.
Commonly occurs when:
- The bind address is already in use
- Permission denied on privileged ports
- Network interface is unavailable
Ssh(String)
SSH protocol error.
General SSH protocol-level errors. Contains a descriptive message.
Russh(Error)
Underlying russh library error.
Wraps errors from the russh SSH implementation.
Key(String)
Key generation or management error.
Occurs when generating or manipulating SSH keys fails.
KeyLoad(Error)
Key loading error from russh-keys.
Occurs when loading SSH keys from files fails. Common causes: file not found, invalid format, permission denied.
AuthenticationFailed
Authentication failed.
Occurs when a client’s credentials are rejected. This is expected in normal operation - not all attempts succeed.
MaxSessionsReached
Maximum concurrent sessions reached.
Returned when attempting to create a new session while at capacity.
Fields
Configuration(String)
Server configuration error.
Occurs when the server configuration is invalid.
Session(String)
Session error.
Occurs during an active SSH session.
AddrParse(AddrParseError)
Address parse error.
Occurs when parsing a socket address fails.