通过伪ttyterminal的SSH和sudo

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

我需要执行ssh作为目标系统,然后运行“ sudo su - ,然后使用密钥更新服务帐户authorized_keys”

这最终必须上我的可靠的脚本。

我正在使用“ ssh -t user@targetsudo su - service-user “ – 这实际上让我成为一个服务用户的shell,但我无法想出一个方法来传递文件修改命令以上。

任何提示或替代select?

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

干杯!

假设你想用一个全新的版本覆盖service-user的authorized_keys文件,你可以这样做:

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

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