markwa
November 2, 2025, 1:50pm
#1
resource “tls_private_key” “rsa_key” {
algorithm = “RSA”
rsa_bits = 4096
}
resource “aws_key_pair” “datacenter-kp” {
key_name = “datacenter-kp”
public_key = trimspace(tls_private_key.rsa_key.public_key_openssh)
tags = {
type = “rsa”
}
}
resource “local_file” “datacenter-kp_pem” {
content = “tls_private_key.rsa_key.private_key_pem”
filename = “/home/bob/datacenter-kp.pem”
file_permission = “0600”
}
output “key_type” {
value = “rsa”
}
I tried to create aws key pair & I mentioned the type RSA also but still I’m unable to clear this task
First, please use a code block for this kind of code – pasting it directly into the edit window as you did garbles your code. Here’s what I think you meant:
resource "tls_private_key" "rsa_key" {
algorithm ="RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "datacenter-kp" {
key_name ="datacenter-kp"
public_key = trimspace(tls_private_key.rsa_key.public_key_openssh)
tags = {
type ="rsa"
}
}
resource "local_file" "datacenter-kp_pem" {
content ="tls_private_key.rsa_key.private_key_pem"
filename ="/home/bob/datacenter-kp.pem"
file_permission ="0600"
}
Your code may lack spaces in some points of it that made it syntactically invalid. I can’t tell, again, because your code is garbled, and I had to add in spaces to make it parse correctly in terraform. The other possibility is that you’re not naming some of the items as the task expects.
Assuming I got your code correctly, then it does generate a PEM file that looks valid. But without knowing the exact wording of the task (this changes from each time you call up the task), I can’t be sure why the grader is unhappy.
With a correction, and having applied terraform fmt:
resource "tls_private_key" "rsa_key" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "datacenter-kp" {
key_name = "datacenter-kp"
public_key = trimspace(tls_private_key.rsa_key.public_key_openssh)
tags = {
type = "rsa"
}
}
resource "local_file" "datacenter-kp_pem" {
content = tls_private_key.rsa_key.private_key_pem
filename = "/home/bob/datacenter-kp.pem"
file_permission = "0600"
}
output "key_type" {
value = "rsa"
}
This may well be your problem – this is wrong. You need to remove the quote marks of this one, since content needs to be set to a variable to work here.
1 Like
resource "tls_private_key" "my_key" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "xfusion-kp" {
key_name = "xfusion-kp"
public_key = trimspace(tls_private_key.my_key.public_key_openssh)
tags = {
type = "rsa"
}
}
resource "local_file" "xfusion-kp_pem" {
content = tls_private_key.my_key.private_key_openssh
filename = "/home/bob/xfusion-kp.pem"
file_permission = "0600"
}
output "key_type" {
value = "rsa"
}
Hi ! I am facing a similar issue. The key is being generated and the format is correct. What could be wrong?
‘xfusion-kp’ doesn’t exist or or its type is not ‘rsa’.
ssh-keygen -l -f /home/bob/xfusion-kp.pem
4096 SHA256:RY/wLb2a3QcxJo/FsgW/EYY/fkPec37i7Nnw5f2BmGY (RSA)
Update: Fixed
content = tls_private_key.my_key.private_key_openssh -> content = tls_private_key.my_key.private_key_pem
1 Like
resource "tls_private_key" "my_key" {
algorithm = "RSA"
rsa_bits = 4096
}
resource "aws_key_pair" "xfusion-kp" {
key_name = "xfusion-kp"
public_key = trimspace(tls_private_key.my_key.public_key_openssh)
tags = {
type = "rsa"
}
}
resource "local_file" "xfusion-kp_pem" {
content = tls_private_key.my_key.private_key_openssh
filename = "/home/bob/xfusion-kp.pem"
file_permission = "0600"
}
output "key_type" {
value = "rsa"
}
Hi ! I am facing a similar issue. The key is being generated and the format is correct. What could be wrong?
‘xfusion-kp’ doesn’t exist or or its type is not ‘rsa’.
ssh-keygen -l -f /home/bob/xfusion-kp.pem
4096 SHA256:RY/wLb2a3QcxJo/FsgW/EYY/fkPec37i7Nnw5f2BmGY (RSA)