2017-09-20 4 views
0

Je reçois une erreur de ssh qui n'ajoute lorsque vous essayez d'appliquer un plan de terraform:Terraform ne peut pas se connecter via ssh à EC2 exemple

  • ssh: poignée de main a échoué: ssh: aucun algorithme commun pour échange de clés client proposé: [[email protected] ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-groupe14-sha1 diffie-hellman-group1-sha1], serveur proposé: [diffie-hellman- groupe d'échange-sha256]

l'exemple peut être connecté à la main avec la clé SSH spécifiée sans problèmes. Voici la chaîne de connexion terraform:

connection { 
    type = "ssh" 
    user = "ed209" 
    private_key = "${file("${var.aws_key_path}")}" 
    timeout = "2m" 
    agent = true 
    host = "${var.use_public_ip ? aws_instance.castiron.public_ip : aws_instance.castiron.private_ip}" 
} 

La connexion est configuré pour se connecter en privé par le même itinéraire que j'utilise ssh pour se connecter manuellement. Des idées sur quoi essayer?

+0

Quelle version de Terraform utilisez-vous? – strongjz

+0

Terraform v0.10.6 – TyMac

Répondre

0

La méthode d'utilisation de la variable dans la fonction file est incorrecte. Devrait être:

private_key = "${file(var.aws_key_path)}" 
+0

Même erreur exacte avec cette syntaxe. – TyMac

+0

terraform utilise go lib 'golang.org/x/crypto/ssh' qui n'est pas 100% compatible avec' openssh'. Assurez-vous de courir avec le même protocole, de mettre à jour la version d'openssh sur les clients, etc. – BMW