mod: add configuration for key.dir and key.name
This commit is contained in:
@@ -34,10 +34,10 @@ func setupLogging() {
|
|||||||
// all if no user is given) the application `name` with the provided arguments
|
// all if no user is given) the application `name` with the provided arguments
|
||||||
// `args` as the ssh session. The ssh session will always allocate an pty
|
// `args` as the ssh session. The ssh session will always allocate an pty
|
||||||
// (necessary for tui applications).
|
// (necessary for tui applications).
|
||||||
func setupSshServer(host string, port string, users map[string]string, name string, args []string) (*ssh.Server, error) {
|
func setupSshServer(host string, port string, host_key_path string, users map[string]string, name string, args []string) (*ssh.Server, error) {
|
||||||
return wish.NewServer(
|
return wish.NewServer(
|
||||||
wish.WithAddress(net.JoinHostPort(host, port)),
|
wish.WithAddress(net.JoinHostPort(host, port)),
|
||||||
wish.WithHostKeyPath(".ssh/ssh_host_ed25519_key"),
|
wish.WithHostKeyPath(host_key_path),
|
||||||
wish.WithPublicKeyAuth(func(_ ssh.Context, key ssh.PublicKey) bool {
|
wish.WithPublicKeyAuth(func(_ ssh.Context, key ssh.PublicKey) bool {
|
||||||
if len(users) == 0 {
|
if len(users) == 0 {
|
||||||
// no users provided, meaning there is no user authentication, everyone is allowed to connect
|
// no users provided, meaning there is no user authentication, everyone is allowed to connect
|
||||||
@@ -69,9 +69,9 @@ func setupSshServer(host string, port string, users map[string]string, name stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Serve an ssh application using the provided arguments.
|
// Serve an ssh application using the provided arguments.
|
||||||
func Serve(host string, port string, users map[string]string, name string, args []string) {
|
func Serve(host string, port string, host_key_path string, users map[string]string, name string, args []string) {
|
||||||
setupLogging()
|
setupLogging()
|
||||||
srv, err := setupSshServer(host, port, users, name, args)
|
srv, err := setupSshServer(host, port, host_key_path, users, name, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Could not start server", "error", err)
|
log.Error("Could not start server", "error", err)
|
||||||
}
|
}
|
||||||
|
|||||||
3
main.go
3
main.go
@@ -12,6 +12,8 @@ func createDefaultConfig() {
|
|||||||
viper.SetDefault("host", "127.0.0.1")
|
viper.SetDefault("host", "127.0.0.1")
|
||||||
viper.SetDefault("port", "8022")
|
viper.SetDefault("port", "8022")
|
||||||
viper.SetDefault("users", map[string]string{})
|
viper.SetDefault("users", map[string]string{})
|
||||||
|
viper.SetDefault("key.dir", ".ssh")
|
||||||
|
viper.SetDefault("key.name", "ssh_ed25519_key")
|
||||||
viper.SetDefault("app.name", "echo")
|
viper.SetDefault("app.name", "echo")
|
||||||
viper.SetDefault("app.args", []string{"Hello World"})
|
viper.SetDefault("app.args", []string{"Hello World"})
|
||||||
}
|
}
|
||||||
@@ -58,6 +60,7 @@ func main() {
|
|||||||
serve.Serve(
|
serve.Serve(
|
||||||
viper.GetString("host"),
|
viper.GetString("host"),
|
||||||
viper.GetString("port"),
|
viper.GetString("port"),
|
||||||
|
fmt.Sprintf("%s/%s", viper.GetString("key.dir"), viper.GetString("key.name")),
|
||||||
viper.GetStringMapString("users"),
|
viper.GetStringMapString("users"),
|
||||||
viper.GetString("app.name"),
|
viper.GetString("app.name"),
|
||||||
viper.GetStringSlice("app.args"),
|
viper.GetStringSlice("app.args"),
|
||||||
|
|||||||
Reference in New Issue
Block a user