Ansible哈希密码不起作用

Ansible哈希密码不起作用,ansible,ansible-2.x,Ansible,Ansible 2.x,我的playbook全局变量中有一个带有ansible\u ssh\u user和ansible\u ssh\u pass的变量。我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程vm。我试过ansible\u user和ansible\u pass,但还是没有成功。以下是我使用的方法,但都失败了。我不确定我错过了什么,希望一些专家能帮上忙。当我使用清除密码时,它会工作,但不会散列。以下是我尝试过但仍不成功的方法:- 1. mkpasswd --method=SHA-512 2. p

我的playbook全局变量中有一个带有
ansible\u ssh\u user
ansible\u ssh\u pass
的变量。我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程vm。我试过
ansible\u user
ansible\u pass
,但还是没有成功。以下是我使用的方法,但都失败了。我不确定我错过了什么,希望一些专家能帮上忙。当我使用
清除密码
时,它会工作,但不会散列。以下是我尝试过但仍不成功的方法:-

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
1。mkpasswd——方法=SHA-512
2.来自passlib.hash import sha512_crypt的python-c;
打印sha512_加密(“”)
3.  # python
>>>导入密码
>>>地窖。地窖(“,$6$salt$”)
4.cat/etc/shadow | grep
尝试获取加密的密码,但仍不起作用
我已确认我的虚拟机正在使用
加密方法SHA512
。什么都没用,如果有人能帮忙,我会很感激的

我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程vm

还有一个很好的理由——要使用SSH协议和密码验证连接到远程计算机,您必须提供密码,而不是密码哈希


在口令认证中,用户提供口令,系统处理口令。作为一种安全措施,系统存储密码散列而不是密码,以便在出现漏洞时,密码本身不会受到损害

如果出于某种原因,系统允许使用散列而不是密码对用户进行身份验证,这将是一个巨大的安全漏洞(相当于将密码存储在明文中)

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

我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程vm

还有一个很好的理由——要使用SSH协议和密码验证连接到远程计算机,您必须提供密码,而不是密码哈希


在口令认证中,用户提供口令,系统处理口令。作为一种安全措施,系统存储密码散列而不是密码,以便在出现漏洞时,密码本身不会受到损害

如果出于某种原因,系统允许使用散列而不是密码对用户进行身份验证,这将是一个巨大的安全漏洞(相当于将密码存储在明文中)


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

您似乎希望访问您的虚拟机并使用Ansible执行某些操作

  • 使用Ansible的最佳实践是首先设置一个公私密钥对。
  • 检查使用密钥对的SSH是否正常工作。如果是,你可以继续
  • 现在假设您想要访问IP为10.192.34.74的主机。将以下行添加到库存文件:

    10.192.34.72 ansible\u ssh\u private\u key\u file=/path/to/private/key/file


  • 现在它应该可以工作了。

    看起来您希望访问您的虚拟机并使用Ansible做一些事情

  • 使用Ansible的最佳实践是首先设置一个公私密钥对。
  • 检查使用密钥对的SSH是否正常工作。如果是,你可以继续
  • 现在假设您想要访问IP为10.192.34.74的主机。将以下行添加到库存文件:

    10.192.34.72 ansible\u ssh\u private\u key\u file=/path/to/private/key/file


  • 现在它应该可以工作了。

    陈述一下你真正想做的事情可能会有好处。只说您所做的并不能解释任何事情。我正在尝试从机器A运行Ansible,并期望Ansible to ssh到机器B使用
    Ansible\u ssh\u user
    Ansible\u ssh\u pass
    执行一些任务。当
    ansible\u ssh\u pass
    处于清除状态时,一切正常,我可以通过ansible从机器A登录到机器B。在我散列密码的那一刻,它就不工作了。希望helpsIt能够帮助您陈述您实际想要做的事情。只说您所做的并不能解释任何事情。我正在尝试从机器A运行Ansible,并期望Ansible to ssh到机器B使用
    Ansible\u ssh\u user
    Ansible\u ssh\u pass
    执行一些任务。当
    ansible\u ssh\u pass
    处于清除状态时,一切正常,我可以通过ansible从机器A登录到机器B。在我散列密码的那一刻,它就不工作了。希望这有助于链接不起作用。然而,我可能错了,这种方法要求我将公钥复制到我需要连接的每台机器上,对吗?假设我在
    机器A中运行ansible,并将在30台机器中执行一些任务。我需要将
    机器A
    公钥复制到所有30台机器上,以使密钥对正常工作。反之亦然,如果我错了,我仍然需要使用
    ssh-keygen
    在所有30台机器中生成私钥。我仍然需要一些方式登录到30台机器。对不起,错误的链接,我已经更新了相同的。是的,您是对的,您需要将公钥复制到所有远程计算机。我假设您正在使用一台中央计算机(DOCM)在远程计算机上运行Ansible。复制密钥是一次性任务。您可以使用“for”循环轻松地实现自动化。”“谢谢。在复制密钥需要身份验证之前,我有过
    ssh copy id
    的经验。这就是为什么我试图避免在ansible中使用ssh密钥,而只是使用普通的旧用户/密码凭据。无论如何,我已经决定在我的变量文件中使用clear password
    ansible\u ssh\u pass
    ,但使用ansible vault对文件进行加密,并将ansible vault密码存储在Hashicorp vault中。这将工作,但我需要包括更多的工具和努力