pub struct SshAccept {
pub local_user: String,
pub accept_env: Vec<String>,
pub session_duration_nanos: Option<i64>,
pub allow_agent_forwarding: bool,
pub allow_local_port_forwarding: bool,
pub allow_remote_port_forwarding: bool,
pub recorders: Vec<SocketAddr>,
pub recording_required: bool,
pub recording_refusal_message: String,
}Expand description
Details of an accepted SSH connection.
Fields§
§local_user: StringThe resolved local Unix user to run the session as.
accept_env: Vec<String>Environment variable names the client may forward.
session_duration_nanos: Option<i64>Max session duration in nanoseconds (None/0 = unlimited).
allow_agent_forwarding: boolWhether SSH agent forwarding is permitted.
allow_local_port_forwarding: boolWhether local port forwarding is permitted.
allow_remote_port_forwarding: boolWhether remote port forwarding is permitted.
recorders: Vec<SocketAddr>The session recorders (ip:port) the matched rule demands this session be streamed to.
Empty for the common no-recording case.
recording_required: booltrue when the matched rule demands a capability this fork cannot yet provide, so the
server MUST refuse the session rather than accept it un-recorded/un-delegated (the tsr-0h2
fail-closed gate). Set when recorders is non-empty (recording demanded but there is no
recorder transport) or hold_and_delegate is set (delegate round-trip unimplemented).
The common case — no recorders, no delegate — leaves this false, so those sessions accept
normally and the gate is a no-op for them.
recording_refusal_message: StringThe message to surface when refusing a recording_required session: the policy’s
on_recording_failure.reject_session_with_message when set (Go’s explicit fail-closed
message), else the action message, else empty (the caller substitutes a default).
Trait Implementations§
impl Eq for SshAccept
impl StructuralPartialEq for SshAccept
Auto Trait Implementations§
impl Freeze for SshAccept
impl RefUnwindSafe for SshAccept
impl Send for SshAccept
impl Sync for SshAccept
impl Unpin for SshAccept
impl UnsafeUnpin for SshAccept
impl UnwindSafe for SshAccept
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<A, T> DynMessage<A> for T
impl<A, T> DynMessage<A> for T
Source§fn handle_dyn<'a>(
self: Box<T>,
state: &'a mut A,
actor_ref: ActorRef<A>,
tx: Option<Sender<Result<Box<dyn Any + Send>, SendError<Box<dyn Any + Send>, Box<dyn Any + Send>>>>>,
stop: &'a mut bool,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn ReplyError>>> + Send + 'a>>
fn handle_dyn<'a>( self: Box<T>, state: &'a mut A, actor_ref: ActorRef<A>, tx: Option<Sender<Result<Box<dyn Any + Send>, SendError<Box<dyn Any + Send>, Box<dyn Any + Send>>>>>, stop: &'a mut bool, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn ReplyError>>> + Send + 'a>>
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more