Servers
Servers over AWS Session Manager (SSM)
Open EC2 instances with no PEM and no open port 22, through AWS Systems Manager.
If your EC2 instances run the SSM agent, the panel can open them through AWS Session Manager instead of a saved PEM. Nothing changes once a server is open: the terminal, file manager, Docker, health checks, the Activity log and the AI assistant all work the same.
- No inbound port 22. The SSM agent on the server connects out to AWS on port 443; the security group can have no inbound rules at all.
- No stored keys. For every login the panel makes a one-time key pair in memory and hands AWS the public half for 60 seconds (EC2 Instance Connect).
- Access is your IAM policy. Every session start and key push is an AWS API call, recorded in your CloudTrail.
SSM is available on self-hosted installs. It needs AWS's Session Manager plugin on the panel host, which the self-hosted image includes.
How servers get it
- Refresh reads which instances the SSM agent manages, along with your EC2 list. Their cards show SSM once access is on.
- An instance whose agent is Online and that has no saved PEM is switched on by itself while your plan has room for another server. There's nothing to set up: open it, or ask the AI assistant about it.
- If the plan is full, or you switched it off, the card shows Set up access. That dialog has Connect via SSM next to the PEM form.
A saved PEM always wins: an instance with one keeps connecting over SSH. To move it to SSM, remove its saved login.
Login user
The panel logs in as the image's default user, picked from the OS the agent
reports: ubuntu for Ubuntu, admin for Debian, ec2-user for Amazon Linux,
Red Hat and SUSE. If your servers use another account, change it under Set
up access (the key icon on the card). Commands run through sudo when that
user has passwordless sudo, as with SSH.
Switching it off
The unplug icon on the card (or Turn off SSM in the EC2 details) stops the panel opening that server: no Open, no health checks, and the AI assistant no longer lists it. A switched-off server doesn't count against your plan. Turn it back on from Set up access.
What the server needs
- The SSM agent running. It is preinstalled on Amazon Linux, Ubuntu and most AWS images.
- An instance profile with the
AmazonSSMManagedInstanceCorepolicy (or Default Host Management Configuration turned on for the account). - Outbound HTTPS to the SSM endpoints, or VPC endpoints for
ssm,ssmmessagesandec2messageson a private subnet. sshdrunning, even though port 22 is closed to the network: the session reaches it on the server's own localhost.- EC2 Instance Connect, preinstalled on Amazon Linux 2 and 2023 and Ubuntu
20.04 and later. Without it, the panel writes the one-time key into the
user's
authorized_keyswith a 20-minute expiry through SSM Run Command (needs OpenSSH 8.2 or later).
What the project's AWS access needs
{
"Effect": "Allow",
"Action": [
"ssm:DescribeInstanceInformation",
"ssm:StartSession",
"ssm:TerminateSession",
"ec2-instance-connect:SendSSHPublicKey",
"ssm:SendCommand",
"ssm:GetCommandInvocation"
],
"Resource": "*"
}
ssm:SendCommand and ssm:GetCommandInvocation are only used for images
without EC2 Instance Connect. You can narrow ssm:StartSession to your
instances and the AWS-StartPortForwardingSession document.
When it won't connect
| Message | What to check |
|---|---|
| The SSM agent on this server is offline | The instance is running, its role has AmazonSSMManagedInstanceCore, and it can reach the SSM endpoints. |
| …can't open SSM sessions (missing …) | Add the named action to the project's IAM policy, above. |
| The server refused the SSM login as "…" | The login user doesn't exist on the server; change it under Set up access. |
| The Session Manager plugin isn't installed | The panel host is missing session-manager-plugin; use the self-hosted image. |
