added --pty-shell to server
This commit is contained in:
16
README.md
16
README.md
@@ -1,10 +1,18 @@
|
||||
## pty and rpty access
|
||||
|
||||
## simple rpty access
|
||||
|
||||
- ./hodu server --rpc-on=0.0.0.0:9999 --ctl-on=[::1]:8888
|
||||
- ./hodu server --rpc-on=0.0.0.0:9999 --ctl-on=[::1]:8888 --pty-shell=/bin/bash
|
||||
- ./hodu client --rpc-to=127.0.0.1:9999 --ctl-on=[::1]:1107 --client-token=test-client --pty-shell=/bin/bash
|
||||
|
||||
Access `http://[::1]:8888/_rpty/xterm.html?client-token=test-client` on the server using the web browser.
|
||||
On the server-side:
|
||||
- Access `http://[::1]:8888/_rpty/xterm.html?client-token=test-client` using a web browser to access a pty session of a remote client.
|
||||
- Access `http://[::1]:8888/_pty/xterm.html` using a web browser to access a local pty session.
|
||||
|
||||
On the client-side:
|
||||
- Access `http://[::1]:1107/_pty/xterm.html` using a web browser to access a local pty session.
|
||||
|
||||
## port based proxy service
|
||||
- ./hodu server --rpc-on=0.0.0.0:9999 --ctl-on=0.0.0.0:8888 --pxy-on=0.0.0.0:9998 --wpx-on=0.0.0.0:9997
|
||||
- ./hodu client --rpc-to=127.0.0.1:9999 --ctl-on=127.0.0.1:1107 "127.0.0.2:22,0.0.0.0:12345,ssh,Access SSH Server"
|
||||
|
||||
## port based proxy service
|
||||
- ./hodu server --rpc-on=0.0.0.0:9999 --ctl-on=0.0.0.0:8888 --pxy-on=0.0.0.0:9998 --wpx-on=0.0.0.0:9997
|
||||
|
||||
26
cmd/main.go
26
cmd/main.go
@@ -376,6 +376,7 @@ func main() {
|
||||
var cfgfile string
|
||||
var cfgpat string
|
||||
var logfile string
|
||||
var pty_shell string
|
||||
var cfg ServerConfig
|
||||
|
||||
ctl_addrs = make([]string, 0)
|
||||
@@ -417,6 +418,10 @@ func main() {
|
||||
cfgpat = v
|
||||
return nil
|
||||
})
|
||||
flgs.Func("pty-shell", "specify the program to execute for pty access", func(v string) error {
|
||||
pty_shell = v
|
||||
return nil
|
||||
})
|
||||
flgs.SetOutput(io.Discard) // prevent usage output
|
||||
err = flgs.Parse(os.Args[2:])
|
||||
if err != nil {
|
||||
@@ -455,6 +460,9 @@ func main() {
|
||||
if logfile != "" {
|
||||
cfg.APP.LogFile = logfile
|
||||
}
|
||||
if pty_shell != "" {
|
||||
cfg.APP.PtyShell = pty_shell
|
||||
}
|
||||
|
||||
err = server_main(ctl_addrs, rpc_addrs, rpx_addrs, pxy_addrs, wpx_addrs, &cfg)
|
||||
if err != nil {
|
||||
@@ -495,14 +503,14 @@ func main() {
|
||||
cfgpat = v
|
||||
return nil
|
||||
})
|
||||
flgs.Func("client-token", "specify a client token", func(v string) error {
|
||||
client_token = v
|
||||
return nil
|
||||
})
|
||||
flgs.Func("pty-shell", "specify the program to execute for pty access", func(v string) error {
|
||||
pty_shell = v
|
||||
return nil
|
||||
})
|
||||
flgs.Func("client-token", "specify a client token", func(v string) error {
|
||||
client_token = v
|
||||
return nil
|
||||
})
|
||||
flgs.SetOutput(io.Discard)
|
||||
err = flgs.Parse(os.Args[2:])
|
||||
if err != nil {
|
||||
@@ -540,12 +548,12 @@ func main() {
|
||||
cfg.APP.TokenText = client_token
|
||||
cfg.APP.TokenFile = ""
|
||||
}
|
||||
if pty_shell != "" {
|
||||
cfg.APP.PtyShell = pty_shell
|
||||
}
|
||||
if logfile != "" {
|
||||
cfg.APP.LogFile = logfile
|
||||
}
|
||||
if pty_shell != "" {
|
||||
cfg.APP.PtyShell = pty_shell
|
||||
}
|
||||
|
||||
err = client_main(ctl_addrs, rpc_addrs, flgs.Args(), &cfg)
|
||||
if err != nil {
|
||||
@@ -562,8 +570,8 @@ func main() {
|
||||
os.Exit(0)
|
||||
|
||||
wrong_usage:
|
||||
fmt.Fprintf(os.Stderr, "USAGE: %s server --rpc-on=addr:port --ctl-on=addr:port --rpx-on=addr:port --pxy-on=addr:port --wpx-on=addr:port [--config-file=file] [--config-file-pattern=pattern]\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s client --rpc-to=addr:port --ctl-on=addr:port [--config-file=file] [--config-file-pattern=pattern] [--client-token=string] [peer-addr:peer-port ...]\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, "USAGE: %s server --rpc-on=addr:port --ctl-on=addr:port --rpx-on=addr:port --pxy-on=addr:port --wpx-on=addr:port [--config-file=file] [--config-file-pattern=pattern] [--pty-shell=string]\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s client --rpc-to=addr:port --ctl-on=addr:port [--config-file=file] [--config-file-pattern=pattern] [--pty-shell=string] [--client-token=string] [peer-addr:peer-port ...]\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s version\n", os.Args[0])
|
||||
os.Exit(1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user