Linux
通過偽 tty 終端執行 SSH 和 sudo
我試圖克服我們環境中的一些限制,為無密碼 ssh 密鑰編寫授權的 SSH 文件。
我需要對目標系統執行 ssh,然後執行 "
sudo su -
,然後使用密鑰更新服務帳戶 authorized_keys"這最終必須進入我的 ansible 腳本。
我正在使用“
ssh -t user@target
”sudo 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
真的有必要,但也許它在你的環境中。