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.
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 DirectTCPIPReq
- type Server
- func (s *Server) Addr() string
- func (s *Server) AdvertiseAddr() string
- func (s *Server) Close() error
- 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 SetEventLogger(e events.Log) ServerOption
- func SetLabels(labels map[string]string, cmdLabels services.CommandLabels) ServerOption
- func SetLimiter(limiter *limiter.Limiter) ServerOption
- func SetProxyMode(tsrv reversetunnel.Server) ServerOption
- func SetRecorder(rec recorder.Recorder) 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 DirectTCPIPReq ¶
func ParseDirectTCPIPReq ¶
func ParseDirectTCPIPReq(data []byte) (*DirectTCPIPReq, error)
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 (*Server) AdvertiseAddr ¶ added in v1.0.0
AdvertiseAddr returns an address this server should be publicly accessible as, in "ip:host" form
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 SetEventLogger ¶
func SetEventLogger(e events.Log) ServerOption
SetEventLogger sets structured event logger for 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 ¶ added in v1.0.0
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