代码拉取完成,页面将自动刷新
/**
* WSSH Demo
*
* @abstract Demo
* @version 1.0.0
* @author Wildlife <[email protected]>
* @link https://lanseyujie.com
*/
package main
import (
"flag"
"github.com/lanseyujie/wssh/wssh"
"golang.org/x/net/websocket"
"io/ioutil"
"log"
"net/http"
"os"
)
var (
user string
host string
port uint
key string
password string
help bool
)
func main() {
var shell *wssh.WebSocketShell
flag.StringVar(&user, "u", "root", "ssh user")
flag.StringVar(&host, "h", "localhost", "ssh host")
flag.UintVar(&port, "P", 22, "ssh port")
flag.StringVar(&key, "k", "", "private key file path")
flag.StringVar(&password, "p", "", "ssh or private key password")
flag.BoolVar(&help, "help", false, "this help")
flag.Parse()
if help {
flag.PrintDefaults()
os.Exit(0)
}
log.SetPrefix("[ERROR] ")
if len(key) > 0 {
// get private key.
key, err := ioutil.ReadFile(key)
if err != nil {
log.Fatalln(err)
}
shell = wssh.NewWebSocketShell(host, int(port), user, password, key)
} else {
shell = wssh.NewWebSocketShell(host, int(port), user, password, nil)
}
// test config
err := shell.Connect()
if err != nil {
log.Fatalln("ssh config", err)
} else {
shell.Close()
}
http.Handle("/", http.FileServer(http.Dir("./static/")))
http.Handle("/ssh", websocket.Handler(shell.WebSocket))
err = http.ListenAndServe(":8080", nil)
log.Fatalln(err)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。