From afcffacab9075b9aa807fc03ffcfdad906686c8c Mon Sep 17 00:00:00 2001 From: Bryan Stenson Date: Mon, 20 Feb 2023 22:34:31 +0000 Subject: [PATCH] set default user based on current user (same default as most ssh clients) use filepath.Join rather than strings.Join for better os support --- examples/goph/main.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/goph/main.go b/examples/goph/main.go index 25e8046..97778b5 100644 --- a/examples/goph/main.go +++ b/examples/goph/main.go @@ -9,6 +9,8 @@ import ( "log" "net" "os" + osuser "os/user" + "path/filepath" "strings" "time" @@ -53,11 +55,16 @@ var ( ) func init() { + usr, err := osuser.Current() + if err != nil { + fmt.Println("couldn't determine current user. defaulting to 'root'") + usr.Username = "root" + } flag.StringVar(&addr, "ip", "127.0.0.1", "machine ip address.") - flag.StringVar(&user, "user", "root", "ssh user.") + flag.StringVar(&user, "user", usr.Username, "ssh user.") flag.UintVar(&port, "port", 22, "ssh port number.") - flag.StringVar(&key, "key", strings.Join([]string{os.Getenv("HOME"), ".ssh", "id_rsa"}, "/"), "private key path.") + flag.StringVar(&key, "key", filepath.Join(os.Getenv("HOME"), ".ssh", "id_rsa"), "private key path.") flag.StringVar(&cmd, "cmd", "", "command to run.") flag.BoolVar(&pass, "pass", false, "ask for ssh password instead of private key.") flag.BoolVar(&agent, "agent", false, "use ssh agent for authentication (unix systems only).")