A Stream Deck page with a back key at top left, paging arrows in the bottom corners, and one key per SSH host showing its name, user and address.
The host page: one key per host in the config, built for you.

What you need

  • Windows 10 or 11 with the built-in OpenSSH Client. Current versions of Windows include it; if ssh does nothing in PowerShell, add it under Settings → System → Optional features.
  • Stream Deck software 7.1 or newer.
  • An SSH config at %USERPROFILE%\.ssh\config with your hosts in it. If you already connect by typing ssh myserver, you have one.

Any Stream Deck works: the original, Mini, XL, Stream Deck +, Neo, and Stream Deck Mobile on a phone or tablet.

1. Install the plugin

On the Elgato Marketplace. Install SSH Launcher from its Marketplace listing; Stream Deck loads it automatically and there is nothing to configure on disk.

2. Your SSH config

The plugin reads the config you already have. There is nothing to import and nothing to type twice. For example, this config:

Host pve01 proxmox1
  HostName 10.0.10.11
  User root

Host minecraft
  HostName 10.0.20.5
  User mc
  Port 2222

Host web01
  HostName web01.example.com
  User deploy
  ProxyJump bastion

Host *
  IdentityFile ~/.ssh/id_ed25519

gives you three keys: pve01, minecraft and web01. The rules are simple:

  • One key per Host line, named after its first alias. Host pve01 proxmox1 is one key called pve01; the other names still work when you type them.
  • Lines made only of wildcards are settings, not hosts. Host * and Host *.corp get no key, but what they set still applies.
  • Include files are followed, including patterns such as Include config.d/*.
  • Edits show up by themselves within a few seconds. Add a host, save, and its key appears.

A quick test: if ssh pve01 connects when you type it in PowerShell, the key will connect too. The plugin runs exactly that command.

3. Add the keys

You will find two actions in the SSH Launcher category.

SSH Hosts

One key that opens a page with a key for every host. Drag it anywhere and press it. The first time, Stream Deck asks permission to install the host page; accept it.

On that page, press any host to connect. Back returns to where you were, and the arrows in the bottom corners page through when you have more hosts than keys. Layouts are included for every Stream Deck model, so a Mini shows three hosts at a time and an XL shows twenty-nine.

SSH Host

A key pinned to one host, for the servers you reach for most. Open its settings and choose from Host, a list read from your config. Label is optional and replaces the alias on the key, for example Backups instead of pbs.

Eight keys: the SSH Hosts key showing a host count, three host keys including a jump host and one on port 2222, a key showing opened, a key showing an error, a key for a host no longer in the config, and a host key with a custom label.
SSH Hosts, pinned hosts, and what a key shows after a press.

Every host key shows:

  • the alias in the middle, with a colour that stays the same for that host, so a full page is easy to scan
  • the user underneath, and the address it connects to
  • the port in the top corner when it is not 22, and via bastion when the host goes through a jump host

Leave the key's title empty. The key draws its own text.

4. Settings

Open either action's settings and expand Settings. They are shared by every SSH key, so you set them once.

SettingOptions
Open inWindows PowerShell window (default), PowerShell 7 window, Windows Terminal tab
Session endsTick Close the window when ssh exits to close it. Off by default, so a failed connection leaves its error on screen
Host pageIn the order of the config (default) or Alphabetical
Hide hostsNames or patterns to leave off the host page, for example github.com, *.old
After openingTick Leave the host page to go back to your own page once a session opens
Config fileLeave empty for %USERPROFILE%\.ssh\config, or point it at another file. %VARIABLES% and ~ work

5. What happens when you press a host

A single host key for pve01, showing a prompt symbol, the name pve01, the user root and the address 10.0.10.11.
One host key, drawn by the plugin itself.

A new window opens, titled ssh pve01, running Windows' own OpenSSH client with that alias. From there it is an ordinary SSH session: ssh reads the config, picks the key, follows the jump host and asks for anything it needs, such as a passphrase, in the window. The key shows opened for a moment.

When the session ends the window stays open at a PowerShell prompt, unless you ticked Close the window when ssh exits. That way you can read why a connection dropped, or reconnect with the up arrow.

Sessions do not belong to Stream Deck. Windows starts them the same way it starts a program you open from the desktop, so quitting or updating Stream Deck leaves every open session running.

What the plugin can and cannot see

It reads your SSH config, and only to draw the keys. It never opens your private keys, never sees a password or passphrase, and makes no network connections of its own. Everything that touches your servers is done by ssh.

Troubleshooting

You seeWhat it means
pick a hostAn SSH Host key with no host chosen yet. Open its settings and choose one
not in SSH configThe chosen host was renamed or removed from the config. The key still runs ssh with that name; choose the host again to update it
No SSH config foundThere is no file at the config path. Create %USERPROFILE%\.ssh\config, or check Config file
wt.exe not found / pwsh.exe not foundWindows Terminal or PowerShell 7 is not installed. Install it, or change Open in
no page for this deckThe device has no keys to lay a page out on, such as a Stream Deck Pedal
A host has no keyIts Host line is all wildcards, its name is already used by an earlier Host line, or it matches Hide hosts
The window opens, then ssh failsThe error in the window is ssh's own. Type the same ssh command yourself to work on it; the key will behave the same

Frequently asked

Does it work on a Mac?

Not yet. It is Windows only for now.

Where do I put passwords?

Nowhere in the plugin. If a server asks for a password or a key passphrase, ssh asks in the window, as it always does. Keys and agents work exactly as they do from a terminal.

I use Git for Windows. Which ssh does it run?

Windows' own, C:\Windows\System32\OpenSSH\ssh.exe, even if another ssh comes first on your PATH. That is the client that reads %USERPROFILE%\.ssh\config and works with the Windows ssh-agent.

Can one key run a command on the server instead?

Put it in the config with RemoteCommand and RequestTTY yes under its own Host line, and that host's key runs it.

Something is still wrong.

Email support@teatimeservers.ca with what the key or the window says, and we will take a look.