Linux

通過偽 tty 終端執行 SSH 和 sudo

  • July 22, 2016

我試圖克服我們環境中的一些限制,為無密碼 ssh 密鑰編寫授權的 SSH 文件。

我需要對目標系統執行 ssh,然後執行 " sudo su -,然後使用密鑰更新服務帳戶 authorized_keys"

這最終必須進入我的 ansible 腳本。

我正在使用“ ssh -t user@targetsudo su - service-user“-它實際上成功地讓我進入了服務使用者的外殼。但我無法找到一種方法來傳遞文件修改命令。

任何提示或替代選擇?

注意:我需要使用“ ssh -t”選項,因為目標系統上沒有設置requiretty。

乾杯!

假設你想用一個全新的版本覆蓋服務使用者的 authorized_keys 文件,你可以這樣做:

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

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

引用自:https://serverfault.com/questions/791306