我的playbook全局变量中有一个ansible_ssh_user
和ansible_ssh_pass
的变量。我尝试用各种方法散列我的密码,但我仍然无法ssh到我的远程虚拟机。我尝试了ansible_user
和ansible_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
。没有什么是有效的,如果有人可以提供帮助,请欣赏
答案 0 :(得分:3)
我尝试使用各种方法对我的密码进行哈希,但我仍然无法访问我的远程虚拟机
并且有充分的理由 - 使用带有密码身份验证的SSH协议连接到远程计算机,您必须提供密码,而不是密码哈希。
在密码验证中,用户提供密码和系统处理它们。作为安全措施之一,系统存储密码哈希而不是密码,以便在发生泄露时,密码本身不会受到损害。
如果由于某种原因系统允许使用哈希而不是密码来验证用户,那么这将是一个巨大的安全漏洞(相当于以明确的方式存储密码)。
如果您确实需要使用密码验证,则Ansible Vault会提供一种保护密码的方法。否则使用公钥认证。
答案 1 :(得分:0)
您似乎想要访问您的虚拟机并使用Ansible执行某些操作。
现在假设您要访问IP为10.192.34.74的主机。将以下行添加到您的库存文件中:
10.192.34.72 ansible_ssh_private_key_file = / path / to / private / key / file
现在应该可以了。