Ale*_*hen 9 ssh amazon-ec2 ansible
我想使用公共aws keypair .pem文件来运行ansible playbooks.我想在不改变我的情况下这样做~/.ssh/id_rsa.pub,我不能从我当前创建一个新的密钥对,~/.ssh/id_rsa.pub并将其应用于我想要改变的ec2实例.
$ ansible --version
ansible 1.9.6
configured module search path = None
Run Code Online (Sandbox Code Playgroud)
这是我的主机文件(请注意我的实际IP替换为1.2.3.4).这可能是问题,因为我需要一种方法来设置公钥变量并使用它:
[all_servers:vars]
ansible_ssh_private_key_file = ./mykeypair.pem
[dashboard]
1.2.3.4 dashboard_domain=my.domain.info
Run Code Online (Sandbox Code Playgroud)
这是我的剧本:
---
- hosts: dashboard
gather_facts: False
remote_user: ubuntu
tasks:
- name: ping
ping:
Run Code Online (Sandbox Code Playgroud)
这是我用来运行它的命令:
ansible-playbook -i ./hosts test.yml
Run Code Online (Sandbox Code Playgroud)
它会导致以下错误:
fatal: [1.2.3.4] => SSH Error: Permission denied (publickey).
while connecting to 1.2.3.4:22
Run Code Online (Sandbox Code Playgroud)
我的密钥对没有问题:
$ ssh -i mykeypair.pem ubuntu@1.2.3.4 'whoami'
ubuntu
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Ale*_*hen 14
好的小错误我猜你不能在主机文件变量中有空格,需要定义你要应用变量的组.这个hosts文件适用于所有:
[dashboard:vars]
ansible_ssh_private_key_file=./mykeypair.pem
[dashboard]
1.2.3.4 dashboard_domain=my.domain.info
Run Code Online (Sandbox Code Playgroud)
Vic*_*iga 11
我遇到了这个,我所要做的就是运行下面的
#ssh-agent bash
#ssh-add ~/.ssh/keypair.pem
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15394 次 |
| 最近记录: |