-
Notifications
You must be signed in to change notification settings - Fork 340
FAQs
This page covers the most common issues learners hit while deploying and completing the Linux CTF. Use the section links to jump to your problem.
- Connecting via SSH
- Using the verify command
- Progress and flags
- Certificate and token export
- Terraform deployment
- Provider-specific notes
- Where to get more help
Most SSH problems come down to four things:
-
Wait for setup to finish. After
terraform applycompletes, the VM still runs a first-boot setup script. Wait 2-3 minutes before connecting. -
Use the right username. Always connect as
ctf_user— notubuntu,ec2-user,root, or your local username. -
Use the right password. The password is
CTFpassword123!(case-sensitive, including the!). -
Use the public IP from Terraform. Run
terraform outputand use the printed public IP.
Connection format:
ssh ctf_user@<PUBLIC_IP>- Confirm the VM is running in your cloud provider's console.
- If you are on a corporate network or VPN, port 22 may be blocked — try a different network.
- Confirm your security group / firewall rule allows inbound SSH (the Terraform config sets this up by default).
The setup script has not finished installing the verify tool yet, or your shell session started before it completed. Wait a minute, then reconnect via SSH and try again.
verify <challenge_number> CTF{your_flag_here}For example: verify 1 CTF{example_value}. You must include the full CTF{...} wrapper.
| Command | What it does |
|---|---|
verify progress |
Show your completion progress |
verify list |
List all challenges and their status |
verify hint <num> |
Get a hint for a challenge |
verify export <github_username> |
Export your completion token |
You probably skipped the example flag. Run this first:
verify 0 CTF{example}Flag 0 is the example and counts toward your total. Many "stuck at 17/18" reports are fixed by submitting it.
- Make sure the flag format is exactly
CTF{...}with no extra spaces before or after. - Copy-paste the flag rather than retyping it to avoid typos.
- Run
verify listto confirm which challenge the flag belongs to.
Each lab instance generates its own flags. If two look identical, redeploy the lab so a fresh set is generated, then re-run the challenges.
- Generate a fresh token with
verify export <your_github_username>and copy the entire string. - Make sure you completed and verified all challenges, including the example flag (
verify 0 CTF{example}). - If verification on the site still errors, note your GitHub username and open an issue using the Verify / Certificate issue template.
Install Terraform 1.9.0 or higher. If you hit a provider error, run:
terraform init -upgrade| Error | Fix |
|---|---|
| SKU / instance type not supported in region | Try a different region or VM size. The instance size is configurable. |
| Quota / limit exceeded | Check your cloud provider's quota dashboard and request an increase or pick a smaller size. |
null_resource.wait_for_setup takes several minutes |
This is expected — setup runs on first boot. If it times out, SSH in manually; setup may still be finishing. |
| Provider version incompatible | Run terraform init -upgrade. |
- Configure credentials with the AWS CLI.
- Confirm your IAM user has permission to create EC2, VPC, and related resources.
- Confirm the instance type is available in your chosen region.
- Make sure you have an active subscription and the Azure CLI installed and logged in (
az login). - Student and trial subscriptions often restrict regions and VM sizes — if you hit a SKU error, try a different region or size.
- Make sure you have the gcloud CLI installed and authenticated, and a project selected.
- Confirm the machine type is available in your chosen zone.
- Free-tier and organization policies can restrict regions/zones and machine types.
- Setup or deployment bug? Open a GitHub issue using the most specific template (SSH, Terraform, or Verify). Include your full error output.
- Challenge questions or feature ideas? Post in Community Discussions so others can benefit and the maintainers can help without spoiling answers.
- Always make sure your local repo is up to date:
git pull.