2017-09-20 40 views
0

我越来越想申请一个terraform计划时不加入了SSH错误:Terraform无法通过SSH连接到EC2实例

  • SSH:握手失败:SSH:没有共同的算法密钥交换;客户提供:[[email protected] ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha1 diffie-hellman-group1-sha1],提供的服务器:[diffie-hellman-组交换-SHA256]

的实例可以手动连接与没有问题指定的ssh密钥。这里是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}" 
} 

连接设置为通过,我使用ssh手动连接到同一条路线私自连接。有什么想法的想法?

+0

您使用的是哪个版本的Terraform? – strongjz

+0

Terraform v0.10.6 – TyMac

回答

0

file函数中使用变量的方法是错误的。应该是:

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

与该语法相同的确切错误。 – TyMac

+0

terraform使用了与'openssh'不兼容的lib lib'golang.org/x/crypto/ssh'。确保你使用相同的协议运行,升级客户端的openssh版本等。 – BMW