2017-09-20 41 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