Sooner or later you need to "get into" the server: restart a service, see why the disk filled up, read a log. And then the usual question comes up: who has the key? A terminal in the browser takes the problem out of the way: nothing has to be installed on the computer of whoever is logging in, no key has to be emailed to them, and there is a record of who logged in. This guide explains what AWS offers you for that in each case and what steps are involved.
Before you start: what each thing means
- Terminal or console
- A window where you type commands to the machine and see what it answers. On Linux it is called Bash; on Windows, PowerShell.
- SSH
- The protocol used to open a remote terminal in an encrypted way. It uses port 22.
- SSH client
- The program you install on your computer to connect over SSH (PuTTY, the "ssh" in the terminal…). A terminal in the browser makes it unnecessary.
- Temporary key
- An SSH key that AWS generates for a single connection and that expires in minutes. It is what the Lightsail web console uses.
- Server fingerprint (host key)
- The "signature" of the machine's SSH server. It lets you make sure you are talking to your machine and not to another one impersonating it.
- Windows OpenSSH server
- The component that allows SSH logins to a Windows machine. Windows Server has included it as an optional feature since 2019 (2025, already installed).
Step by step
Linux on Lightsail: the web console
In the Lightsail console, every Linux machine has the Connect using SSH button. A terminal opens in the browser with nothing to configure: Lightsail generates a temporary key, puts it on the machine for a few minutes and logs in as the image's user (bitnami, ubuntu, ec2-user…). It is convenient and secure. What it does not give you: per-person permissions (whoever gets into the AWS console gets into all the machines), a record of who opened what, or a way to give it to an external technician without giving them your AWS account.
Linux on EC2: Session Manager
In EC2 there is no such temporary key. The client-free option is Session Manager, part of Systems Manager: the machine runs an agent (Amazon's images include it) and an IAM role that lets it talk to Systems Manager; from the EC2 console, Connect → Session Manager opens a terminal. Advantages: no need to open port 22 and there is a record. In exchange: the IAM role, the permissions and, if you want to record sessions, an S3 bucket or CloudWatch. It is the route AWS recommends for EC2.
Windows: PowerShell over OpenSSH
The Lightsail console for Windows is Remote Desktop in the browser, heavy and with the Administrator password in the middle of it. The lightweight alternative is the Windows OpenSSH server: in PowerShell as administrator,
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 Set-Service sshd -StartupType Automatic; Start-Service sshd New-ItemProperty -Path HKLM:\SOFTWARE\OpenSSH -Name DefaultShell -Value "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -ForceWith that, an SSH connection to port 22 opens PowerShell. Open 22 in the Windows firewall and in the Lightsail one only for the IPs that should get in. On Windows Server 2025 the server is already installed and you only have to start it.
Check the fingerprint the first time
The first connection to a machine shows its fingerprint and asks whether you accept it. If you can, compare it with the one the machine itself gives (
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubon Linux; on Windows the same command onC:\ProgramData\ssh\ssh_host_ed25519_key.pub). From then on your client remembers it and warns you if it changes. A changed-fingerprint warning with no reason is serious: do not continue until you understand why.Giving the console to a technician without giving them your account
Here AWS falls short. The options are to create an IAM user for them with very tightly limited permissions (and maintain them), or to give them an SSH key of their own and copy it to the machines they work on (and remember to remove it). Neither is terrible; both are work that piles up with every technician and every machine, and what usually happens in the end is that "the usual key" gets shared.
What can go wrong
"Connection timed out" on port 22
The Lightsail firewall (or the EC2 security group) does not have 22 open for your current IP. Open it for your IP, not for everyone.
On Windows it connects but the console is cmd, not PowerShell
The DefaultShell registry entry from step 3 is missing. Add it and restart the sshd service.
Session Manager says the machine is not "managed"
The agent is not talking to Systems Manager: almost always the machine is missing the IAM role (AmazonSSMManagedInstanceCore) or the machine has no internet access and no private endpoints.
The fingerprint has changed
If you reinstalled the machine or created it from a snapshot on another IP, it is normal. If not, stop and find out: it could be another machine in the middle.
In Simplio
In Simplio the terminal is a button on the machine's card. On Linux it uses the same temporary key as the Lightsail web console; on Windows it opens PowerShell through the Windows OpenSSH server with the password Lightsail has stored, without anyone seeing it. In both cases: two-factor code on every opening, permission per person and per machine (the technician sees the test machine and no other), a 60-second single-use ticket for the browser, and the machine's fingerprint checked. Nobody receives a key, nothing is installed, and every opening is kept in the activity log. How the terminal works.
The same task, in AWS and in Simplio
| In the AWS console | In Simplio | |
|---|---|---|
| Open a Linux console | Lightsail web console (with your AWS account) or Session Manager in EC2 (agent, role, permissions) | "Terminal" button on the card, with the two-factor code |
| Open a Windows console | Remote Desktop with the Administrator password, or install OpenSSH and connect with a client | "Terminal" button: PowerShell in the browser, with two-factor |
| Give it to a technician | IAM user or their own SSH key, machine by machine | Grant them that machine in Simplio; nothing to send or to remove afterwards |
| Know who logged in | SSH logs on each machine, or CloudTrail for Session Manager | Activity log: who, which machine, when, from which IP |
| Check the fingerprint | You, the first time, by hand | AWS provides it on Linux; on Windows Simplio memorises it the first time and demands it every time |