Como obter o Terraform para ver a identidade ao usar o KeeAgent?

1

Estou criando servidores no AWS usando o Terraform em uma máquina Windows e isso está funcionando muito bem. Quando eles são criados, quero instalar o docker neles. No entanto, depois de criá-los, a conexão SSH do Terraform falha (usando manualmente o subsistema Linux ou o Putty, posso fazer o login bem).

Trecho do script terraform:

resource "aws_instance" "worker-01" {
ami           = "ami-1b2bb774"
instance_type = "t2.medium"
subnet_id     = "${data.aws_subnet.public.id}"
key_name      = "deployer-key"
security_groups = [
  "${data.aws_security_group.ssh-access.id}"
]

tags {
  Name = "worker-01"
}

connection {
  user = "ec2-user"
}

provisioner "remote-exec" {
  inline = [
    // Install all updates
    "sudo yum update -y",
    // Install docker and add user to docker group
    "sudo yum install docker -y",
    "sudo service docker start",
    "sudo usermod -a -G docker ec2-user"
  ]
}

}

A mensagem de erro é muito clara: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain . Aparentemente, a identidade não é carregada em um agente ssh. Aqui está o truque: eu tenho o concurso em andamento, com minha identidade carregada! Ou melhor, o plugin KeeAgent no KeePass está agindo em seu nome e carregou a identidade no concurso.

Isso funciona para qualquer outra conexão SSH, mas agora falha. Isso é por causa do nome de usuário ou é algo mais que estou perdendo? Se for o nome de usuário, existe alguma maneira de dizer ao KeeAgent / pageant que ele deve usar minha identidade também para o usuário ec2? Eu sei que deveria tentar todas as identidades, mas não sei por que isso não acontece.

PS: Acabei de perceber que estou executando tudo isso em um prompt de comando normal. Talvez isso não tenha acesso ao concurso por padrão? Alguém tem uma ideia sobre isso?

    
por titusn 05.04.2018 / 15:09

1 resposta

0

Veja o seguinte em

link

Additional arguments only supported by the ssh connection type:

    private_key - The contents of an SSH key to use for the connection. These can be loaded from a file on disk using the file() interpolation function. This takes preference over the password if provided.

    agent - Set to false to disable using ssh-agent to authenticate. On Windows the only supported SSH authentication agent is Pageant.

    agent_identity - The preferred identity from the ssh agent for authentication.

    host_key - The public key from the remote host or the signing CA, used to verify the connection.

Certifique-se de definir o agent_identity no bloco connection {} dentro do provisionador

    
por 05.04.2018 / 23:37