123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package imsvr
- import "golang.org/x/crypto/ssh"
- type ServerConfig struct {
- BindAddress string
- MaxAuthTries int
- hostkeys []ssh.Signer
- ovrSSHPasswordCallback bool
- ovrSSHPublicKeyCallback bool
- ovrSSHKeyboardInteractiveCallback bool
- ovrSSHAuthLogCallback bool
- ocSSHPasswordCallback func(conn ssh.ConnMetadata, password []byte) (*ssh.Permissions, error)
- ocSSHPublicKeyCallback func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error)
- ocSSHKeyboardInteractiveCallback func(conn ssh.ConnMetadata, client ssh.KeyboardInteractiveChallenge) (*ssh.Permissions, error)
- ocSSHAuthLogCallback func(conn ssh.ConnMetadata, method string, err error)
- }
- func (c *ServerConfig) AddHostKey(key ssh.Signer) {
- if c.hostkeys == nil {
- c.hostkeys = make([]ssh.Signer, 1)
- c.hostkeys[0] = key
- }else {
- c.hostkeys = append(c.hostkeys, key)
- }
- }
- func (c *ServerConfig) OverrideSSHPasswordCallback(
- cb func(conn ssh.ConnMetadata, password []byte) (*ssh.Permissions, error),
- ){
- c.ovrSSHPasswordCallback = true
- c.ocSSHPasswordCallback = cb
- }
- func (c *ServerConfig) OverrideSSHPublicKeyCallback(
- cb func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error),
- ){
- c.ovrSSHPublicKeyCallback = true
- c.ocSSHPublicKeyCallback = cb
- }
- func (c *ServerConfig) OverrideSSHKeyboardInteractiveCallbakc(
- cb func(conn ssh.ConnMetadata, client ssh.KeyboardInteractiveChallenge) (*ssh.Permissions, error),
- ){
- c.ovrSSHKeyboardInteractiveCallback = true
- c.ocSSHKeyboardInteractiveCallback = cb
- }
- func (c *ServerConfig) OverrideSSHAuthLogCallback(
- cb func(conn ssh.ConnMetadata, method string, err error),
- ){
- c.ovrSSHAuthLogCallback = true
- c.ocSSHAuthLogCallback = cb
- }
|