如何将预先存在的密钥SSH添加到ansible? (加密)

时间:2017-01-18 11:46:00

标签: amazon-web-services ssh amazon-ec2 ansible

我对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的最佳实践

1 个答案:

答案 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