通过伪 tty 终端使用 SSH 和 sudo

通过伪 tty 终端使用 SSH 和 sudo

我正在尝试克服我们环境中的一些限制,为无密码 ssh 密钥编写一个授权 SSH 文件。

我需要以 ssh 身份连接到目标系统,然后运行“ sudo su -,然后使用密钥更新服务帐户 authorized_keys”

这最终必须进入我的 ansible 脚本。

我正在使用“ ssh -t user@targetsudo su - service-user- 它实际上成功地让我进入了服务用户的 shell。但我无法找到一种方法来传递上述文件修改命令。

有什么建议或其他选择吗?

注意:我需要使用“ ssh -t”选项,因为目标系统上没有设置requiretty。

干杯!

答案1

假设您想用全新版本覆盖服务用户的authorized_keys文件,您可以执行以下操作:

cat master_authorized_keys |
    ssh -t user@target \
        "sudo -u service-user tee ~/.ssh/authorized_keys >/dev/null"

我不知道是否-t真的有必要,但也许它在你的环境中。

相关内容