Пример #1
0
// addKeys adds keys to akd as name.
func addKeys(akd *keys.SSHAuthorizedKeysDir, name string, force bool) error {
	k := []byte{}
	files := []*os.File{}

	if flag.NArg() > 0 {
		// read from files
		for _, fp := range flag.Args() {
			f, err := os.Open(fp)
			if err != nil {
				return err
			}
			defer f.Close()
			files = append(files, f)
		}
	} else {
		// read from stdin
		files = append(files, os.Stdin)
	}

	for _, f := range files {
		b, err := ioutil.ReadAll(f)
		if err != nil {
			return err
		}
		k = append(k, b...)
	}

	if !validKeys(k) {
		return fmt.Errorf("key(s) invalid.")
	}

	return akd.Add(name, k, *flagReplace, force)
}