通过`ssh-copy-id`中的stdin发送密码

kbt*_*btz 11 ssh pipe key-authentication

我需要自动化一些身份部署,最好使用ssh-copy-id.

我正在尝试通过 stdin 提供密码,这可以ssh通过使用-S标志来实现。我知道,我可以给额外的选项来ssh使用-o的标志ssh-copy-id。然而有此标志的没有使用的例子在手册页命令。

所以我尝试ssh-copy-id使用以下方法通过 stdin传递 SSH 密码:

$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s
Run Code Online (Sandbox Code Playgroud)

编辑:

我正在尝试通过 stdin 提供密码,这可以 ssh通过使用-S标志来实现。

这个说法是错误的。我实际上已经从sudo男人那里读到了这面旗帜;

dha*_*hag 15

您可能想尝试安装 sshpass,并将您的调用更改为ssh-copy-id

sshpass -p "$TMP_PASS" ssh-copy-id
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,不是在 mac 上,当尝试 `brew install` 时,我得到“错误:没有名为“sshpass”的可用公式,我们不会添加 sshpass,因为它让 SSH 新手用户很容易破坏 SSH 的安全性。” (2认同)