我正在尝试使用 Go 在我的本地 $HOME/.ssh/ 目录下添加一个公钥。
我一直在使用相同的代码运行多个命令,没有问题,但不是针对这个特定的。
identity := fmt.Sprintf("cat %s/.ssh/%s.pub", fileUtil.FindUserHomeDir(), p.sshkey.name)
address := fmt.Sprintf("| ssh %s@%s 'cat >> ~/.ssh/authorized_keys', p.projectname.name, p.host.name)
cmd := exec.Command(identity, address)
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
基本上我正在尝试运行:
cat /home/foo/.ssh/foobar.pub | ssh foo@bar.com 'cat >> ~/.shh/authorized_keys'"
如果我直接通过命令行运行它,效果很好。
我想在不同的 OS X 机器上运行这个程序,其中一些没有安装 ssh-copy-id。所以,我不考虑使用它。
但无论如何,我愿意接受其他建议。先感谢您。
呼啦一阵风
catspeake
相关分类