2017-10-08 95 views
0

我在我的手冊全局變量中有一個變量ansible_ssh_useransible_ssh_pass。我嘗試用各種方法散列我的密碼,但我仍然無法SSH到我的遠程虛擬機。我試過ansible_useransible_pass,但仍然沒有運氣。以下是我使用的方法,全部失敗。我不確定我錯過了什麼,希望有些專家可以提供幫助。當我使用clear password時,它可以工作,但不是哈希。下面是我試過的方法,但仍然不成功: -Ansible哈希密碼不起作用

1. mkpasswd --method=SHA-512 
2. python -c "from passlib.hash import sha512_crypt; 
    print sha512_crypt.encrypt('<password>')" 
3. # python 
    >>> import crypt 
    >>> crypt.crypt('<PASSWORD>', '$6$salt$') 
4. cat /etc/shadow | grep <user> 
    Try to get the encrypted password but still not working 

我確認我的VM使用ENCRYPTED_METHOD SHA512。沒有什麼工作,不勝感激,如果有人可以幫助

+0

說出你實際想要做的事情可能是有益的。說出你所做的並不能解釋任何事情。 – techraf

+0

我試圖從機器A運行Ansible,並期望Ansible使用'ansible_ssh_user'和'ansible_ssh_pass'來執行一些任務的ssh。當'ansible_ssh_pass'清楚時,一切正常,我可以通過Ansible從機器A登錄到機器B.當我散列密碼時,它不起作用。希望可以幫助 – jlim

回答

3

我試着用各種方法散列我的密碼,但我仍然無法ssh到我的遠程虛擬機

而對於一個很好的理由 - 連接到使用帶密碼驗證的SSH協議遠程計算機,您必須提供密碼,而不是密碼哈希。


在密碼驗證用戶提供密碼和系統處理它們。作爲安全措施之一,系統存儲密碼哈希而不是密碼,以便在發生違規時密碼本身不會受到威脅。

如果由於某種原因系統允許使用散列而不是密碼來驗證用戶,這將是一個巨大的安全漏洞(相當於存儲密碼清晰)。

如果您確實需要使用密碼驗證,那麼Ansible Vault提供了一種保護密碼的方法。否則使用公鑰認證。

+0

謝謝。你知道這是否記錄在Ansible文檔的任何地方嗎?我會看看'ansible-vault'來加密變量文件或Hashicorp保管庫以存儲祕密 – jlim

+1

@jlim它沒有記錄,因爲沒有什麼可以記錄,尤其是在Ansible方面。在密碼認證用戶提供密碼和系統處理這些密碼。爲了提供安全性,系統存儲密碼哈希值,以便在發生違規時密碼不會受到影響。如果由於某種原因系統允許使用散列而不是密碼來驗證用戶,這將是一個巨大的安全缺陷。 Ansible在這裏沒有關係。 Ansible Vault當然是保護祕密的好方法。 – techraf

+0

你是對的。不能同意更多。謝謝。 – jlim