From 05c84e7002ae2015d433e8a982292e428112d809 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sat, 23 Jun 2018 16:14:33 +0200 Subject: [PATCH] ssh: run commands through sh -c if sh is present --- ssh.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ssh.go b/ssh.go index 8c95a5c..6b19f61 100644 --- a/ssh.go +++ b/ssh.go @@ -150,7 +150,13 @@ func (s *session) request(req *ssh.Request) error { return scpSink(s.channel, req, cmdline) } - cmd := exec.Command(cmdline[0], cmdline[1:]...) + var cmd *exec.Cmd + if _, err := exec.LookPath("sh"); err == nil { + cmd = exec.Command("sh", "-c", string(req.Payload[4:])) + } else { + cmd = exec.Command(cmdline[0], cmdline[1:]...) + } + log.Printf("Starting cmd %q", cmd.Args) cmd.Env = expandPath(s.env) cmd.SysProcAttr = &syscall.SysProcAttr{}