具有憑證
回答
如果你不信任遠程服務器 - 你永遠不應該暴露敏感憑據它,因爲具有該服務器上的root訪問權限的人可以很容易地攔截通信量,文件和存儲在該服務器上分配由你。讓別人知道你祕密的最簡單方法是轉儲臨時文件,這些文件可以在遠程服務器上完成它的工作,因爲它只需要你連接的用戶的特權!
有一個叫特殊的環境變量ANSIBLE_KEEP_REMOTE_FILES=1
來解決問題。它應該讓您瞭解遠程磁盤上實際存儲的信息,即使是短暫的幾秒鐘。我執行了
ANSIBLE_KEEP_REMOTE_FILES=1 ansible -m command -a "echo 'SUPER_SECRET_INFO'" -i 127.0.0.1, all
命令在我的機器上查看遠程計算機上創建的文件。它的執行後,我看到在我的主目錄的臨時文件,命名爲~/.ansible/tmp/ansible-tmp-1492114067.19-55553396244878/command.py
因此,讓我們用grep出來的祕密信息:
grep SUPER_SECRET ~/.ansible/tmp/ansible-tmp-1492114067.19-55553396244878/command.py
結果:
ANSIBALLZ_PARAMS =「{ 「ANSIBLE_MODULE_ARGS」:{」 _ansible_version 「: 」2.2.2.0「, 」_ansible_selinux_special_fs「:[」 熔絲 「 」NFS「, 」vboxsf「, 」RAMFS「], 」_ansible_no_log「:假 」_ansible_module_name「: 」命令「, 」_raw_params「:」 echo \'SUPER_SECRET_INFO \'「,」_ansible_verbosity「:0,」_ansible_syslog_facility「:」LOG_USER「,」_ansible_diff「:false,」_ ansible_debug「:false,」_ansible_check_mode「:false}}'
正如你所看到的 - 沒有什麼東西是安全的從窺探的眼睛!所以如果你真的關心你的祕密 - 不要在可疑主機上使用任何關鍵的東西,使用一次性密碼,密鑰或可撤銷令牌來緩解這個問題。
這取決於你對這個證書的偏執。一般來說:不,這是不安全的。
我猜遠程主機上的root用戶可以看到任何東西。
例如,在遠程主機上運行strace -f -p$(pidof -s sshd)
,並嘗試通過ssh執行任何命令。
默認情況下Ansible寫所有調用到系統日誌遠程主機上,可以爲任務設置no_log: no
避免這種情況。
- 1. 重定向到具有憑證
- 2. 使用具有憑證的UNC路徑
- 3. javax.xml.transform具有憑證的源代碼
- 4. 具有基於證書的憑證的Azure ACS服務身份
- 5. Firebase憑證憑證API
- 6. HttpClient.GetAsync具有網絡憑據
- 7. Authlogic沒有提供憑證
- 8. 帶有憑證的JSON NSURLRequest
- 9. SugarCRM賬戶憑證和機會憑證
- 10. 跨憑證憑證與資源共享
- 11. 憑證管理API(刪除憑證)
- 12. 具有憑證和多個域的白名單的CORS
- 13. 如何驗證具有相同憑據的子域
- 14. 具有服務帳戶但無效憑證的Google AppEngine
- 15. 負載測試具有獨特的憑證
- 16. 當npm具有git依賴性時的Git憑證
- 17. 驗證FTP憑證
- 18. 使用具有RESOURCE_STATUS的python-rtkit創建RT票證:401需要憑證
- 19. Google API PHP - OAuth問題 - 「請求具有無效的身份驗證憑證」
- 20. 使用CmdLet New-AzureRmADAppCredential創建具有證書的新憑證時出錯
- 21. 憑證陣列
- 22. Subversive Reject憑證
- 23. HttpRequest憑證
- 24. usps憑證
- 25. 憑證緩存
- 26. Paypal WPS憑證
- 27. 集中憑證
- 28. 憑證問題
- 29. 憑證無效
- 30. ServiceBase憑證
定義「安全」 - 例如,您是否將憑證保存在Git倉庫中? –
安全我的意思是說,遠程主機上的用戶(根或不用)應該永遠不會看到帶有這些憑證(歷史記錄或日誌記錄)的命令行。 證書將存儲在Git倉庫(私人)上,但我只想要關於遠程方面的信息。 – Ardinis