Ansible哈希密码不起作用

时间:2017-10-08 04:08:31

标签: ansible ansible-2.x

我的playbook全局变量中有一个ansible_ssh_useransible_ssh_pass的变量。我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程虚拟机。我尝试了ansible_useransible_pass,但仍然没有运气。以下是我使用的方法,但都失败了。我不确定我缺少什么,希望有些专家可以提供帮助。当我使用clear password时,它可以工作,但不能哈希。以下是我尝试但仍然不成功的方法: -

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

我已确认我的虚拟机正在使用ENCRYPTED_METHOD SHA512。没有什么是有效的,如果有人可以提供帮助,请欣赏

2 个答案:

答案 0 :(得分:3)

  

我尝试使用各种方法对我的密码进行哈希,但我仍然无法访问我的远程虚拟机

并且有充分的理由 - 使用带有密码身份验证的SSH协议连接到远程计算机,您必须提供密码,而不是密码哈希。

在密码验证中,用户提供密码和系统处理它们。作为安全措施之一,系统存储密码哈希而不是密码,以便在发生泄露时,密码本身不会受到损害。

如果由于某种原因系统允许使用哈希而不是密码来验证用户,那么这将是一个巨大的安全漏洞(相当于以明确的方式存储密码)。

如果您确实需要使用密码验证,则Ansible Vault会提供一种保护密码的方法。否则使用公钥认证。

答案 1 :(得分:0)

您似乎想要访问您的虚拟机并使用Ansible执行某些操作。

  1. 使用Ansible的最佳做法是首先设置公钥 - 私钥对。  https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2
  2. 检查使用密钥对的SSH是否正常工作。如果是,你可以继续。
  3. 现在假设您要访问IP为10.192.34.74的主机。将以下行添加到您的库存文件中:

    10.192.34.72 ansible_ssh_private_key_file = / path / to / private / key / file

  4. 现在应该可以了。