Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Key pairs for SSH access
📖 Scenario: You are setting up a secure connection to a cloud server. To do this, you need to create a key pair that will allow you to log in safely using SSH without a password.
🎯 Goal: Create an AWS EC2 key pair resource using Infrastructure as Code. This key pair will be used to securely access your cloud server.
📋 What You'll Learn
Create a key pair resource with a specific name
Add a public key material to the key pair
Output the key pair name as a reference
Use valid AWS resource configuration syntax
💡 Why This Matters
🌍 Real World
Key pairs are essential for securely accessing cloud servers without passwords. This project shows how to automate key pair creation for safe SSH access.
💼 Career
Cloud engineers and DevOps professionals often create and manage key pairs to secure server access in AWS environments.
Progress0 / 4 steps
1
Create the key pair resource
Create an AWS EC2 key pair resource named my_key_pair with the key pair name set to my-ssh-key.
AWS
Hint
Use the aws_key_pair resource with the name my_key_pair. Set key_name to my-ssh-key and provide a public key string for public_key.
2
Add a variable for the public key
Create a variable named public_key_value to hold the public SSH key string. Assign it the value ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7...user@example.com.
AWS
Hint
Define a variable block named public_key_value with the public key string as its default value. Reference it in the public_key attribute of the key pair resource.
3
Output the key pair name
Create an output named key_pair_name that outputs the key_name attribute of the aws_key_pair.my_key_pair resource.
AWS
Hint
Use an output block named key_pair_name to expose the key_name from the key pair resource.
4
Add a tag to the key pair resource
Add a tags block to the aws_key_pair.my_key_pair resource with a tag Environment set to Development.
AWS
Hint
Add a tags map inside the key pair resource with the key Environment and value Development.
Practice
(1/5)
1. What is the main purpose of a key pair in AWS for SSH access?
easy
A. To store server data securely
B. To securely connect to a server without using a password
C. To create a backup of the server
D. To monitor server performance
Solution
Step 1: Understand SSH access
SSH uses keys to allow secure login without passwords.
Step 2: Role of key pairs in AWS
A key pair provides a private key for the user and a public key for the server to verify identity.
Final Answer:
To securely connect to a server without using a password -> Option B
Quick Check:
Key pairs enable passwordless secure login [OK]
Hint: Key pairs replace passwords for secure server login [OK]
Common Mistakes:
Thinking key pairs store server data
Confusing key pairs with backups
Assuming key pairs monitor performance
2. Which AWS CLI command correctly creates a new key pair named MyKey and saves the private key to a file?
easy
A. aws ec2 create-key-pair --key-name MyKey --query 'KeyMaterial' --output text > MyKey.pem
B. aws ec2 create-key-pair MyKey > MyKey.pem
C. aws ec2 generate-key-pair --name MyKey > MyKey.pem
D. aws ec2 new-key --key-name MyKey > MyKey.pem
Solution
Step 1: Identify correct AWS CLI syntax
The correct command uses create-key-pair with --key-name and outputs the private key material.
Step 2: Confirm output redirection
The private key is saved by redirecting the output to a file with > MyKey.pem.
Final Answer:
aws ec2 create-key-pair --key-name MyKey --query 'KeyMaterial' --output text > MyKey.pem -> Option A
Quick Check:
Correct AWS CLI syntax for key pair creation [OK]
Hint: Use create-key-pair with --query 'KeyMaterial' to save private key [OK]
Common Mistakes:
Using wrong command like generate-key-pair
Omitting --query to extract key material
Not redirecting output to save private key
3. You launched an EC2 instance with key pair MyKey. Which command will you use to connect to it if the instance's public IP is 54.12.34.56 and your private key file is MyKey.pem?
medium
A. ssh ec2-user@54.12.34.56 -i MyKey.pem
B. ssh -key MyKey.pem ec2-user@54.12.34.56
C. ssh -p MyKey.pem ec2-user@54.12.34.56
D. ssh -i MyKey.pem ec2-user@54.12.34.56
Solution
Step 1: Understand SSH command syntax for key usage
The -i option specifies the private key file for authentication.
Step 2: Confirm correct order of arguments
The correct syntax is ssh -i private_key user@host. ssh -i MyKey.pem ec2-user@54.12.34.56 matches this exactly.
Final Answer:
ssh -i MyKey.pem ec2-user@54.12.34.56 -> Option D
Quick Check:
SSH uses -i to specify private key file [OK]
Hint: Use ssh -i private_key user@ip to connect [OK]
Common Mistakes:
Using -key or -p instead of -i
Placing -i after user@host
Omitting the private key option
4. You tried to connect to your EC2 instance using SSH but got a permission denied error. Which of these is the most likely cause?
medium
A. The private key file has incorrect permissions (too open)
B. The instance is stopped
C. The key pair was deleted from AWS
D. The instance has no public IP
Solution
Step 1: Check SSH private key file permissions
SSH requires private key files to have strict permissions (e.g., 400). Too open permissions cause denial.
Step 2: Understand other options
While stopped instances or no public IP prevent connection, the error message differs. Deleted key pairs do not affect existing instances.
Final Answer:
The private key file has incorrect permissions (too open) -> Option A
Quick Check:
Private key file permissions cause SSH denial [OK]
Hint: Set private key file permission to 400 or stricter [OK]
Common Mistakes:
Ignoring file permission errors
Assuming instance state causes permission denied
Confusing deleted key pairs with connection errors
5. You lost your private key file for an EC2 instance launched with key pair OldKey. What is the best way to regain SSH access without stopping the instance?
hard
A. Use the AWS console to download the lost private key again
B. Delete the instance and launch a new one with a new key pair
C. Create a new key pair, then update the instance's authorized keys by connecting through Systems Manager or another user
D. Generate a new private key file with the same key name in AWS
Solution
Step 1: Understand private key loss impact
Private keys cannot be recovered or downloaded again from AWS once lost.
Step 2: Regain access without stopping instance
Use AWS Systems Manager or another user with access to add a new public key from a new key pair to the instance's authorized keys.
Final Answer:
Create a new key pair, then update the instance's authorized keys by connecting through Systems Manager or another user -> Option C
Quick Check:
Lost private key requires new key and authorized keys update [OK]
Hint: Use Systems Manager to add new key without stopping instance [OK]