Documentation
¶
Index ¶
- Variables
- func ConnectNewSSH(params models.ConnectionParams, uc models.UserContext, conn *websocket.Conn)
- func HandleHostKeyCallback(creds *models.UpstreamCreds, serviceID, orgID string, ...) ssh.HostKeyCallback
- func InitStore(state *global.State, checkPolicyFunc models.CheckPolicyFunc)
- func JoinSSHSession(params models.ConnectionParams, uc models.UserContext, conn *websocket.Conn)
- func ListenSSH(closeChan chan bool) error
- type Adapter
- type GuestClient
- type Session
- type Store
- func (s Store) CreateGuestChannel(sessionID string) chan GuestClient
- func (s Store) DeleteSession(addr net.Addr) error
- func (s Store) GetGuestChannel(sessionID string) (chan GuestClient, error)
- func (s Store) GetSession(addr net.Addr) (*Session, error)
- func (s Store) GetUserFromPublicKey(publicKey ssh.PublicKey, orgID string) (*models.User, error)
- func (s Store) SetAuthType(addr net.Addr, authType consts.SSH_AUTH_TYPE) error
- func (s Store) SetSession(addr net.Addr, session *Session) error
- func (s Store) UpdateSessionMeta(addr net.Addr, connMeta ssh.ConnMetadata) error
- func (s Store) UpdateSessionUser(addr net.Addr, user *models.User) error
- type WrappedTunnel
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrVerifyHost = errors.New("trasa: could not update cert")
Functions ¶
func ConnectNewSSH ¶
func ConnectNewSSH(params models.ConnectionParams, uc models.UserContext, conn *websocket.Conn)
ConnectNewSSH handles new ssh connection from dashboard.
func HandleHostKeyCallback ¶
func HandleHostKeyCallback(creds *models.UpstreamCreds, serviceID, orgID string, confirmSkipVerify func(message string) bool) ssh.HostKeyCallback
func InitStore ¶
func InitStore(state *global.State, checkPolicyFunc models.CheckPolicyFunc)
InitStore initialises package state
func JoinSSHSession ¶
func JoinSSHSession(params models.ConnectionParams, uc models.UserContext, conn *websocket.Conn)
Types ¶
type Adapter ¶
type Adapter interface { GetUserFromPublicKey(publicKey ssh.PublicKey, orgID string) (*models.User, error) SetSession(addr net.Addr, session *Session) error GetSession(addr net.Addr) (*Session, error) DeleteSession(addr net.Addr) error UpdateSessionMeta(addr net.Addr, connMeta ssh.ConnMetadata) error // UpdateSessionParams(addr net.Addr, params *models.AccessMapDetail) error UpdateSessionUser(addr net.Addr, user *models.User) error SetAuthType(addr net.Addr, authType consts.SSH_AUTH_TYPE) error CreateGuestChannel(sessionID string) chan GuestClient GetGuestChannel(sessionID string) (chan GuestClient, error) // contains filtered or unexported methods }
var SSHStore Adapter
type Session ¶
type Session struct { ID string AuthType consts.SSH_AUTH_TYPE Conn *net.Conn // contains filtered or unexported fields }
func NewSession ¶
func (*Session) UpdateConMeta ¶
func (s *Session) UpdateConMeta(connMeta ssh.ConnMetadata)
func (*Session) UpdateService ¶
type Store ¶
func (Store) CreateGuestChannel ¶
func (s Store) CreateGuestChannel(sessionID string) chan GuestClient
func (Store) GetGuestChannel ¶
func (s Store) GetGuestChannel(sessionID string) (chan GuestClient, error)
func (Store) GetUserFromPublicKey ¶
func (Store) SetAuthType ¶
func (Store) UpdateSessionMeta ¶
type WrappedTunnel ¶
type WrappedTunnel struct { io.WriteCloser io.Reader // contains filtered or unexported fields }
WrappedTunnel wraps upstream(backend) ssh connection and writes data to session file,guests It also writes data coming from guests to upstream(backend) ssh connection
func NewWrappedTunnel ¶
func NewWrappedTunnel(sessionID string, sessionRecord bool, backendReader io.Reader, backendWriter io.WriteCloser, guestChan chan GuestClient) (*WrappedTunnel, error)
func (*WrappedTunnel) Close ¶
func (lr *WrappedTunnel) Close() error
func (*WrappedTunnel) ListenToNewGuests ¶
func (lr *WrappedTunnel) ListenToNewGuests(guestChan chan GuestClient)
Click to show internal directories.
Click to hide internal directories.