Documentation ¶
Overview ¶
Copyright 2015 Gravitational, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Package srv implements SSH server that supports multiplexing tunneling, SSH connections proxying and only supports Key based auth
Index ¶
- type Server
- func (s *Server) Addr() string
- func (s *Server) AdvertiseAddr() string
- func (s *Server) Close() error
- func (s *Server) EmitAuditEvent(eventType string, fields events.EventFields)
- func (s *Server) HandleNewChan(nc net.Conn, sconn *ssh.ServerConn, nch ssh.NewChannel)
- func (s *Server) HandleRequest(r *ssh.Request)
- func (s *Server) ID() string
- func (s *Server) Start() error
- func (s *Server) Wait()
- type ServerOption
- func SetAuditLog(alog events.IAuditLog) ServerOption
- func SetLabels(labels map[string]string, cmdLabels services.CommandLabels) ServerOption
- func SetLimiter(limiter *limiter.Limiter) ServerOption
- func SetProxyMode(tsrv reversetunnel.Server) ServerOption
- func SetSessionServer(srv rsession.Service) ServerOption
- func SetShell(shell string) ServerOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Server ¶
Server implements SSH server that uses configuration backend and certificate-based authentication
func New ¶
func New(addr utils.NetAddr, hostname string, signers []ssh.Signer, authService auth.AccessPoint, dataDir string, advertiseIP net.IP, options ...ServerOption) (*Server, error)
New returns an unstarted server
func NewPocketSSHServer ¶
func NewPocketSSHServer( addr utils.NetAddr, hostname string, hostUUID string, signers []ssh.Signer, authService auth.AccessPoint, advertiseIP net.IP, options ...ServerOption) (*Server, error)
New returns an unstarted server
func (*Server) AdvertiseAddr ¶
AdvertiseAddr returns an address this server should be publicly accessible as, in "ip:host" form
func (*Server) EmitAuditEvent ¶
func (s *Server) EmitAuditEvent(eventType string, fields events.EventFields)
EmitAuditEvent logs a given event to the audit log attached to the server who owns these sessions
func (*Server) HandleNewChan ¶
func (s *Server) HandleNewChan(nc net.Conn, sconn *ssh.ServerConn, nch ssh.NewChannel)
HandleNewChan is called when new channel is opened
func (*Server) HandleRequest ¶
HandleRequest is a callback for out of band requests
type ServerOption ¶
ServerOption is a functional option passed to the server
func SetAuditLog ¶
func SetAuditLog(alog events.IAuditLog) ServerOption
SetAuditLog assigns an audit log interfaces to this server
func SetLabels ¶
func SetLabels(labels map[string]string, cmdLabels services.CommandLabels) ServerOption
SetLabels sets dynamic and static labels that server will report to the auth servers
func SetLimiter ¶
func SetLimiter(limiter *limiter.Limiter) ServerOption
SetLimiter sets rate and connection limiter for this server
func SetProxyMode ¶
func SetProxyMode(tsrv reversetunnel.Server) ServerOption
SetProxyMode starts this server in SSH proxying mode
func SetSessionServer ¶
func SetSessionServer(srv rsession.Service) ServerOption
SetSessionServer represents realtime session registry server
func SetShell ¶
func SetShell(shell string) ServerOption
SetShell sets default shell that will be executed for interactive sessions