我正在尝试克服我们环境中的一些限制,为无密码 ssh 密钥编写一个授权 SSH 文件。
我需要以 ssh 身份连接到目标系统,然后运行“ sudo su -
,然后使用密钥更新服务帐户 authorized_keys”
这最终必须进入我的 ansible 脚本。
我正在使用“ ssh -t user@target
” sudo 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
真的有必要,但也许它在你的环境中。