diff --git a/pkg/ssh/ssh.go b/pkg/ssh/ssh.go index 946f6e2..199f180 100644 --- a/pkg/ssh/ssh.go +++ b/pkg/ssh/ssh.go @@ -294,11 +294,13 @@ func sftpHandler(sess ssh.Session) { func (srv Server) buildCmd(s ssh.Session) *exec.Cmd { var cmd *exec.Cmd - if len(s.RawCommand()) == 0 { + switch len(s.Command()) { + case 0: cmd = exec.Command(srv.Shell) - } else { - args := []string{"-c", s.RawCommand()} - cmd = exec.Command(srv.Shell, args...) + case 1: + cmd = exec.Command(s.Command()[0]) + default: + cmd = exec.Command(s.Command()[0], s.Command()[1:]...) } cmd.Env = append(cmd.Env, os.Environ()...)