我对ansible很新。 我已经设法安装它并通过git设置ec2.py文件并设置IAM root用户。但我的问题是我已经有一个ec2实例在线使用亚马逊创建的.pem文件。当我尝试从另一个ec2实例ssh到那个ec2实例时,我使用windows并创建了相对的.ppk文件 cd~ / .ssh /创建文件authorized_keys和known_hosts 但是当我运行ssh ubuntu@ec2-xx-xxx-xx-xxx.us-west-2 .... 我得到了许可被拒绝(puplickey) 我检查了authorized_keys文件和ppk和pem文件的内容,似乎公钥正确存储在authorized_keys文件中并且用户是正确的。 我是否正确认为我需要将私钥复制到此文件中?(虽然我真的不想)或是因为我需要密码? 与ansible有关 如何利用此密钥在同一个VPC中管理主机?
编辑(额外):我发现authorized_keys文件是包含公钥和指纹的文件。当我编辑文件时,我不再能够访问EC2实例并且它一直要求输入密码并说明指纹已经改变。所以我想这就是为什么在ansible系统上创建一个ssh-key然后导入AWS的最佳实践
答案 0 :(得分:2)
如果你可以通过putty和key.ppk文件ssh到相关主机,那么:
key.ppk
转换回key.pem
key.pem
放置在控件主机上(安装Ansible的地方)为Ansible定义库存(主机文件):
myserver ansible_host=ip-or-dns-of-your-server ansible_user=your-user ansible_ssh_private_key_file=path/to/key.pem
运行ansible myserver -m ping
以确认连接
这样,Ansible将尝试使用myserver
私钥在ip-or-dns-of-your-server
帐户与your-user
帐户连接到您的服务器别名path/to/key.pem
。