Пример #1
0
func main() {
	mylogger = logger.NewLogger("", 0)

	configPath := flag.String("config", "", "fssh config file")
	flag.Parse()

	if _, err := toml.DecodeFile(*configPath, &config); err != nil {
		mylogger.Fatal(err)
	}

	sshConfig := ssh.ServerConfig{
		PublicKeyCallback: keyHandler,
		PasswordCallback:  passwdHandler,
	}
	sshConfig.AddHostKey(readSecretKey(config.Key))

	s, err := net.Listen("tcp", config.Address+":"+strconv.Itoa(config.Port))
	if err != nil {
		mylogger.Fatal(err)
	}
	defer s.Close()

	for {
		c, err := s.Accept()
		if err != nil {
			mylogger.Fatal(err)
		}

		ssh.NewServerConn(c, &sshConfig)
	}
}
Пример #2
0
func main() {
	mylogger = logger.NewLogger("", 0)

	configPath := flag.String("config", "", "path to config file")
	flag.Parse()

	if _, err := toml.DecodeFile(*configPath, &config); err != nil {
		mylogger.Fatal(err)
	}

	s := strings.Split(config.LoginTemplate, "/")
	loginTemplate = s[len(s)-1]

	http.HandleFunc("/login/", loginBaseHandler)
	http.HandleFunc("/", redirectHandler)

	templates = template.Must(template.ParseFiles(config.LoginTemplate))

	go func() {
		err := http.ListenAndServe(config.Host+":"+strconv.Itoa(config.HttpPort), nil)
		if err != nil {
			mylogger.Fatal("Http server error: " + err.Error())
		}
	}()

	err := http.ListenAndServeTLS(config.Host+":"+strconv.Itoa(config.HttpsPort),
		config.Cert,
		config.Key,
		nil)
	if err != nil {
		mylogger.Fatal("Https server error: " + err.Error())
	}
}