Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将预先存在的密钥SSH添加到ansible?(加密)_Amazon Web Services_Ssh_Amazon Ec2_Ansible - Fatal编程技术网

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

Amazon web services 如何将预先存在的密钥SSH添加到ansible?(加密),amazon-web-services,ssh,amazon-ec2,ansible,Amazon Web Services,Ssh,Amazon Ec2,Ansible,我对ansible很陌生。 我已经成功地安装了它,并通过git设置了ec2.py文件,还设置了IAM根用户。但我的问题是,我已经有一个ec2实例在线使用亚马逊创建的.pem文件。我使用windows,并在尝试从另一个ec2实例ssh到该ec2实例时创建了相对的.ppk文件,我通过 cd~/.ssh/将创建授权的\u密钥和已知的\u主机文件 但是当我运行ssh时ubuntu@ec2-xxx xxx xxx xxx美国西部2。。。。 我的许可被拒绝(普利基) 我检查了authorized_keys文

我对ansible很陌生。 我已经成功地安装了它,并通过git设置了ec2.py文件,还设置了IAM根用户。但我的问题是,我已经有一个ec2实例在线使用亚马逊创建的.pem文件。我使用windows,并在尝试从另一个ec2实例ssh到该ec2实例时创建了相对的.ppk文件,我通过 cd~/.ssh/将创建授权的\u密钥和已知的\u主机文件 但是当我运行ssh时ubuntu@ec2-xxx xxx xxx xxx美国西部2。。。。 我的许可被拒绝(普利基) 我检查了authorized_keys文件以及ppk和pem文件的内容,似乎公钥正确地存储在authorized_keys文件中,并且用户是正确的。 我是否正确地认为我需要将私钥复制到此文件中?(尽管我并不真的想这样做),还是因为我需要密码短语? 关于ansible 如何使用此密钥管理同一VPC中的主机


编辑(额外):我发现授权密钥文件是包含公钥和指纹的文件。当我编辑该文件时,我无法再访问EC2实例,它不断询问密码并说指纹已更改。因此,我想这就是为什么最好在ansible系统上创建ssh密钥,然后导入AWS的原因。如果您可以通过putty with key.ppk文件ssh到相关主机,那么:

  • key.ppk
    转换回
    key.pem
  • key.pem
    放置在控制主机上的某个位置(安装了Ansible)
  • 为Ansible定义资源清册(主机文件):

    myserver ansible\u host=ip或您服务器的dns ansible\u user=your user ansible\u ssh\u private\u key\u file=path/to/key.pem

  • 运行
    ansible myserver-m ping
    以确认连接


通过这种方式,Ansible将尝试使用
path/to/key.pem
私钥,通过
您的用户帐户,在服务器的
ip或dns处以别名
myserver
连接到您的服务器。

“我认为需要将私钥复制到此文件中的想法正确吗?”--不正确。谢谢确认