Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActorMatchingContext ¶
type ActorMatchingContext interface { // User returns the username used when establishing the SSH connection. User() string // RemoteAddr returns the net.Addr of the client side of the connection. RemoteAddr() net.Addr // LocalAddr returns the net.Addr of the server side of the connection. LocalAddr() net.Addr // Environ returns a copy of strings representing the environment set by the // user for this session, in the form "key=value". Environ() []string // Command returns a shell parsed slice of arguments that were provided by the // user. Shell parsing splits the command string according to POSIX shell rules, // which considers quoting not just whitespace. Command() []string // RawCommand returns the exact command that was provided by the user. RawCommand() string // Subsystem returns the subsystem requested by the user. Subsystem() string // PublicKey returns the PublicKey used to authenticate. If a public key was not // used it will return nil. PublicKey() ssh.PublicKey // Context returns the connection's context. The returned context is always // non-nil and holds the same data as the Context passed into auth // handlers and callbacks. // // The context is canceled when the client's connection closes or I/O // operation fails. Context() context.Context // Permissions returns a copy of the Permissions object that was available for // setup in the auth handlers via the Context. Permissions() ssh.Permissions // Experimental: // Pty returns PTY information, a channel of window size changes, and a boolean // of whether or not a PTY was accepted for this session. Pty() (ssh.Pty, <-chan ssh.Window, bool) }
ActorMatchingContext is an interface of the data available for ActorMatcher
type ConnConfigMatchingContext ¶
type ConnConfigMatchingContext interface { // RemoteAddr returns the net.Addr of the client side of the connection. RemoteAddr() net.Addr // LocalAddr returns the net.Addr of the server side of the connection. LocalAddr() net.Addr }
ConnConfigMatchingContext is an interface of the data available for ConfigMatcher
type ConnMetadata ¶
type ConnMetadata interface { // User returns the user ID for this connection. User() string // SessionID returns the session hash, also denoted by H. SessionID() []byte // ClientVersion returns the client's version string as hashed // into the session ID. ClientVersion() []byte // ServerVersion returns the server's version string as hashed // into the session ID. ServerVersion() []byte // RemoteAddr returns the remote address for this connection. RemoteAddr() net.Addr // LocalAddr returns the local address for this connection. LocalAddr() net.Addr }
ConnMetadata is our own interface compatible with ConnMetadata of golang.org/x/crypto/ssh to define our modules' requirements against an internal interface rather than external
type Context ¶
type Context interface { // ssh.Context context.Context sync.Locker // User returns the username used when establishing the SSH connection. User() string // SessionID returns the session hash. SessionID() string // ClientVersion returns the version reported by the client. ClientVersion() string // ServerVersion returns the version reported by the server. ServerVersion() string // RemoteAddr returns the remote address for this connection. RemoteAddr() net.Addr // LocalAddr returns the local address for this connection. LocalAddr() net.Addr // Permissions returns the Permissions object used for this connection. Permissions() *ssh.Permissions // SetValue allows you to easily write new values into the underlying context. SetValue(key, value interface{}) }
ConnMetadata is our own interface compatible with ConnMetadata of github.com/gliderlabs/ssh to define our modules' requirements against an internal interface rather than external
type Session ¶
type Session interface { ActorMatchingContext // Read reads up to len(data) bytes from the channel. Read(data []byte) (int, error) // Write writes len(data) bytes to the channel. Write(data []byte) (int, error) // Close signals end of channel use. No data may be sent after this // call. Close() error // CloseWrite signals the end of sending in-band // data. Requests may still be sent, and the other side may // still send data CloseWrite() error // SendRequest sends a channel request. If wantReply is true, // it will wait for a reply and return the result as a // boolean, otherwise the return value will be false. Channel // requests are out-of-band messages so they may be sent even // if the data stream is closed or blocked by flow control. // If the channel is closed before a reply is returned, io.EOF // is returned. SendRequest(name string, wantReply bool, payload []byte) (bool, error) // Stderr returns an io.ReadWriter that writes to this channel // with the extended data type set to stderr. Stderr may // safely be read and written from a different goroutine than // Read and Write respectively. Stderr() io.ReadWriter // Signals registers a channel to receive signals sent from the client. The // channel must handle signal sends or it will block the SSH request loop. // Registering nil will unregister the channel from signal sends. During the // time no channel is registered signals are buffered up to a reasonable amount. // If there are buffered signals when a channel is registered, they will be // sent in order on the channel immediately after registering. Signals(c chan<- ssh.Signal) // Break regisers a channel to receive notifications of break requests sent // from the client. The channel must handle break requests, or it will block // the request handling loop. Registering nil will unregister the channel. // During the time that no channel is registered, breaks are ignored. Break(c chan<- bool) }
Session is similar to Session interface from github.com/gliderlab/ssh but without the Exit method to prevent actors from closing the session