17 lines
395 B
Go
17 lines
395 B
Go
package ussher
|
|
|
|
import "golang.org/x/crypto/ssh"
|
|
|
|
func RunSSHServer(config *Config) error {
|
|
sshConfig := &ssh.ServerConfig{
|
|
PublicKeyCallback: func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) {
|
|
return config.Keystore.CheckPublicKey(conn.User(), key)
|
|
},
|
|
}
|
|
|
|
private, err := config.GetPrivateKey()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
sshConfig.AddHostKey(private)
|
|
}
|