Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var RootCmd = &cobra.Command{ Use: "skidd", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { privKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Fatal(err) } signer, err := ssh.NewSignerFromKey(privKey) if err != nil { log.Fatal(err) } serverConfig := &ssh.ServerConfig{ PasswordCallback: func( c ssh.ConnMetadata, pass []byte, ) (*ssh.Permissions, error) { if c.User() == "foo" && string(pass) == "foo" { return nil, nil } return nil, fmt.Errorf("password rejected for %q", c.User()) }, } serverConfig.AddHostKey(signer) serverConfig.NoClientAuth = true cm := skidd.NewConnMaster(serverConfig) wsCm := skidd.NewWsConnMaster(cm) http.HandleFunc("/", wsCm.WsHandler) go func() { log.Printf("listening on %d for websocket connections\n", wsPort) log.Fatal(http.ListenAndServe( fmt.Sprintf("0.0.0.0:%d", wsPort), nil), ) }() fmt.Printf("listening on %d for ssh connections\n", sshPort) listener, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%d", sshPort)) if err != nil { log.Fatal(err) } for { conn, err := listener.Accept() if err != nil { log.Fatal(err) } cm.HandleConn(conn) } }, }
RootCmd represents the base command when called without any subcommands
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.