具有憑證
回答
如果你不信任遠程服務器 - 你永遠不應該暴露敏感憑據它,因爲具有該服務器上的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. javax.xml.transform具有憑證的源代碼
- 3. 使用具有憑證的UNC路徑
- 4. 具有基於證書的憑證的Azure ACS服務身份
- 5. Firebase憑證憑證API
- 6. HttpClient.GetAsync具有網絡憑據
- 7. Authlogic沒有提供憑證
- 8. SugarCRM賬戶憑證和機會憑證
- 9. 具有服務帳戶但無效憑證的Google AppEngine
- 10. 如何驗證具有相同憑據的子域
- 11. 當npm具有git依賴性時的Git憑證
- 12. 使用具有RESOURCE_STATUS的python-rtkit創建RT票證:401需要憑證
- 13. usps憑證
- 14. ServiceBase憑證
- 15. 集中憑證
- 16. 憑證緩存
- 17. HttpRequest憑證
- 18. 憑證無效
- 19. 憑證問題
- 20. python3 exchangelib憑證
- 21. 驗證網站的憑證
- 22. 驗證用戶憑證
- 23. Android憑證API - 沒有合格賬戶
- 24. 沒有憑證的WCF會話
- 25. 沒有憑證的SMTP郵件
- 26. gcloud憑證有什麼區別?
- 27. 如何使憑證
- 28. clojure oauth和憑證
- 29. SPLoginViewController記住憑證
- 30. 更改tfs憑證
定義「安全」 - 例如,您是否將憑證保存在Git倉庫中? –
安全我的意思是說,遠程主機上的用戶(根或不用)應該永遠不會看到帶有這些憑證(歷史記錄或日誌記錄)的命令行。 證書將存儲在Git倉庫(私人)上,但我只想要關於遠程方面的信息。 – Ardinis