Skip to content

Commit 94ee78d

Browse files
committed
feat: add mstsc/ssh config options for agentless RDP/SSH
Exposes MeshCentral's built-in web-based RDP (mstsc) and SSH (ssh) clients as add-on options, matching MeshCentral's own defaults (mstsc: true, ssh: false). Warns at startup if ssh is enabled together with agent_pong/browser_pong, since agentless SSH breaks when keepalive data is mixed into the same WebSocket. Closes #12
1 parent 103d48e commit 94ee78d

4 files changed

Lines changed: 39 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## \[0.2.15\] - 2026-08-08
4+
5+
### Added
6+
7+
- `mstsc` — enable/disable MeshCentral's built-in web-based RDP client (agentless RDP). Enabled by default, matching MeshCentral's own default.
8+
- `ssh` — enable MeshCentral's built-in web-based SSH client (agentless SSH). Disabled by default, matching MeshCentral's own default. A startup warning is logged if enabled together with `agent_pong`/`browser_pong`, since agentless SSH is incompatible with those keepalive options.
9+
10+
Requested in [#12](https://github.com/andlo/ha-meshcentral-addon/issues/12).
11+
312
## \[0.2.14\] - 2026-07-26
413

514
### Added

meshcentral/config.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "MeshCentral",
3-
"version": "0.2.14",
3+
"version": "0.2.15",
44
"slug": "meshcentral",
55
"description": "Self-hosted remote device management — monitor and control your PCs from Home Assistant",
66
"url": "https://github.com/andlo/ha-meshcentral-addon",
@@ -34,6 +34,8 @@
3434
"web_rtc": false,
3535
"compression": true,
3636
"allow_high_quality_desktop": true,
37+
"mstsc": true,
38+
"ssh": false,
3739
"self_update": false,
3840
"maintenance_mode": false,
3941
"no_2fa": false,
@@ -83,6 +85,8 @@
8385
"web_rtc": "bool",
8486
"compression": "bool",
8587
"allow_high_quality_desktop": "bool",
88+
"mstsc": "bool",
89+
"ssh": "bool",
8690
"self_update": "bool",
8791
"maintenance_mode": "bool",
8892
"no_2fa": "bool",

meshcentral/run.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ TLS_OFFLOAD=$(bashio::config 'tls_offload')
1010
WEB_RTC=$(bashio::config 'web_rtc')
1111
COMPRESSION=$(bashio::config 'compression')
1212
ALLOW_HQ_DESKTOP=$(bashio::config 'allow_high_quality_desktop')
13+
MSTSC=$(bashio::config 'mstsc')
14+
SSH_CLIENT=$(bashio::config 'ssh')
1315
SELF_UPDATE=$(bashio::config 'self_update')
1416
MAINTENANCE=$(bashio::config 'maintenance_mode')
1517
NO_2FA=$(bashio::config 'no_2fa')
@@ -201,7 +203,13 @@ DOMAIN=$(echo "$DOMAIN" | jq \
201203
--argjson ss "$SITE_STYLE" \
202204
--argjson gs "$GUEST_SHARING" \
203205
--argjson ar "$AUTO_REMOVE" \
204-
'. + {title: $ttl, newAccounts: $na, siteStyle: $ss, guestDeviceSharing: $gs, autoRemoveInactiveDevices: $ar}')
206+
--argjson mst "$MSTSC" \
207+
--argjson sshc "$SSH_CLIENT" \
208+
'. + {title: $ttl, newAccounts: $na, siteStyle: $ss, guestDeviceSharing: $gs, autoRemoveInactiveDevices: $ar, mstsc: $mst, ssh: $sshc}')
209+
210+
if [ "$SSH_CLIENT" = "true" ] && { [ "$AGENT_PONG" -gt 0 ] 2>/dev/null || [ "$BROWSER_PONG" -gt 0 ] 2>/dev/null; }; then
211+
bashio::log.warning "ssh is enabled together with agent_pong/browser_pong keepalive — agentless SSH sessions will break, as keepalive data gets mixed into the same WebSocket as SSH traffic."
212+
fi
205213

206214
if bashio::config.has_value 'domain_title2'; then
207215
DOMAIN=$(echo "$DOMAIN" | jq --arg v "$(bashio::config 'domain_title2')" '. + {title2: $v}')

meshcentral/translations/en.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,22 @@ configuration:
8989
Allow agents to stream remote desktop at full quality.
9090
Disable to cap image quality and reduce bandwidth on slow connections.
9191
92+
mstsc:
93+
name: Enable web-based RDP client
94+
description: >-
95+
Activates MeshCentral's built-in web-based RDP client, letting you connect to Windows devices
96+
via RDP directly from the browser — including devices without the MeshAgent installed
97+
(agentless). Enabled by default.
98+
99+
ssh:
100+
name: Enable web-based SSH client
101+
description: >-
102+
Activates MeshCentral's built-in web-based SSH client, letting you connect to devices
103+
via SSH directly from the browser — including devices without the MeshAgent installed
104+
(agentless). Disabled by default. Note: agentless SSH is incompatible with the agent/browser
105+
keepalive options above (agent_pong / browser_pong) — enabling those will break SSH sessions,
106+
since keepalive data gets mixed into the same WebSocket as the SSH traffic.
107+
92108
self_update:
93109
name: Allow MeshCentral self-update
94110
description: >-

0 commit comments

Comments
 (0)