ターミナル上でパスワードを入力するとき、画面上には表示されないようにしたい。

そんなときに golang.org/x/crypto の ssh/terminal が使える

func askCred() (string, string) {
	reader := bufio.NewReader(os.Stdin)
	fmt.Print("Enter Username: ")
	username, _ := reader.ReadString('\n')
 
	fmt.Print("Enter Password: ")
	bytePassword, err := terminal.ReadPassword(0)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("\nPassword typed: " + string(bytePassword))
	password := string(bytePassword)
 
	return strings.TrimSpace(username), strings.TrimSpace(password)
}