Я ищу способ ответить на приглашение пароля оболочки в golang.
like:
[email protected]:~/Workspace/rteest$ ./passwordtest.sh
Password :
Я хотел бы ввести пароль автоматически с помощью своего токена в golang после запуска команды оболочки / script...
Я сделал несколько script, которые получают одноразовый токен с mfa, если все в порядке (в golang). Поэтому мне нужно ввести токен tempory в приглашение пароля linux.
Я знаю, что есть команда expect, но я хотел бы скомпилировать мою программу, чтобы вставить ее и иметь минимальный размер.
Спасибо и приветствую
изменить thks на @nevermore Я пробовал это (но он не работает): https://play.golang.org/p/Ffm3q5h636
package main
import (
"os/exec"
"fmt"
"log"
"io"
)
func main() {
cmdb := "git"
args := "clone https://[email protected]/bb/fzgs.git"
cmd := exec.Command(cmdb, args)
stdin, err := cmd.StdinPipe()
if err != nil {
log.Fatal(err)
}
go func() {
defer stdin.Close()
io.WriteString(stdin, "QSRDFGHJfZERTYU")
}()
out, err := cmd.CombinedOutput()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", out)
}
это дает мне следующее:
2017/05/12 20:42:36 exit status 1
exit status 1
edit bis:
cmdb := "git"
args := "https://[email protected]/bb/fzgs.git"
cmd := exec.Command(cmdb, "clone", args)
он запрашивает пароль:
Пароль для https://[email protected] ':