Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FishlerSessionHandler ¶
func FishlerSessionHandler(srv *glssh.Server, conn *gossh.ServerConn, newChan gossh.NewChannel, ctx glssh.Context)
Types ¶
type Session ¶
type Session interface { gossh.Channel // 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 // Exit sends an exit status and then closes the session. Exit(code int) error // 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() glssh.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() glssh.Context // Permissions returns a copy of the Permissions object that was available for // setup in the auth handlers via the Context. Permissions() glssh.Permissions // 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() (glssh.Pty, <-chan glssh.Window, bool) // 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<- glssh.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 provides access to information about an SSH session and methods to read and write to the SSH channel with an embedded Channel interface from crypto/ssh.
When Command() returns an empty slice, the user requested a shell. Otherwise the user is performing an exec with those command arguments.
TODO: Signals
Click to show internal directories.
Click to hide internal directories.