Termix-SSH / Termix-SSH/Support
[BUG]
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 28
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Title
Bug: Desktop app (Windows) fails to authenticate to shared SSH hosts with "no password provided", while the web app works fine with the same account
Platform
Desktop App - Windows
Server Installation Method
Docker
Version
2.7.1
CLI Installation Method
No response
CLI Version
No response
Troubleshooting
- I have examined logs and tried to find the issue
- I have reviewed opened and closed issues
- I have tried restarting the application
- I have checked open issues and ensured this is not a duplicate
The Problem
Bug: Desktop app (Windows) fails to authenticate to shared SSH hosts with "no password provided", while the web app works fine with the same account
Environment
Termix version: 2.7.1
Server: self-hosted, Docker
Client tested: Windows desktop app, both Portable build and MSI/NSIS installer — same result on both
Web app: works correctly with the same account
Summary
Hosts shared to a non-owner user (a service account used by multiple engineers) fail to authenticate over SSH from the Windows desktop app, with the SSH log showing Password authentication requested but no password provided, even though the underlying credential exists, is valid, and connecting to the same host from the web app with the same account works without any issue.
Steps to reproduce
As an admin/owner, create an SSH host using a saved Credential (not a typed-in password).
Share the host with a Role (RBAC) that the target user belongs to.
Log in as the target user on the web app → connect to the host → works fine.
Log in as the same target user on the Windows desktop app (tested both Portable and MSI/NSIS builds) → attempt to connect to the same host → connection fails.
Result
Desktop app connection log:
Starting address resolution of <host_ip>
Connecting to <host_ip> port 22
Loaded 0 jump host(s) from server-side host data
Credentials resolved from server-side host data
Starting address resolution of <host_ip>
Connecting to <host_ip> port 22
Using password authentication
Starting SSH session
Authenticating as admin
Délai de connexion dépassé / Connexion rejetée par le serveur
(on other attempts): Password authentication requested but no password provided
Backend log (termix-main.log) around the same timestamps shows a cascade of access resolution failures for the same user, across many host IDs (negative IDs, likely local cache entries), immediately before the failed connection attempt:
[WARN] User <user_id> cannot resolve host -160 [op:fetch_host_access_denied,user:<user_id>,host:-160]
[WARN] User <user_id> cannot resolve host -161 [op:fetch_host_access_denied,user:<user_id>,host:-161]
... (repeats for ~15 host IDs)
[ERROR] Failed to upsert open tab [op:upsert_open_tab,user:<user_id>]
SqliteError: FOREIGN KEY constraint failed
at PreparedQuery.run (.../drizzle-orm/better-sqlite3/session.js:72:22)
...
[INFO] Terminal WebSocket connection established [op:terminal_ws_connect,user:<user_id>,session:<session_id>]
[INFO] Resolving SSH host configuration [op:terminal_host_resolve,user:<user_id>,host:-207,session:<session_id>]
[ERROR] Password authentication requested but no password provided
[ERROR] SSH connection timeout [op:ssh_connect,host:-207]
What we've already ruled out
Not a credential/sharing configuration issue: tested with the host using a proper saved Credential (not typed password), with "Shared SSH Authentication" enabled.
Not specific to RBAC role-sharing: tested sharing the host directly to the individual user instead of via a Role — same failure.
Not specific to the Portable build: tested with the MSI/NSIS installer as well — same failure.
Web app works flawlessly with the exact same user account and the exact same host/credential.
Expected behavior
The desktop app should resolve and use the shared credential the same way the web app does, without the fetch_host_access_denied errors, and should successfully authenticate over SSH.
Suspected area
The desktop app appears to maintain a local SQLite cache/mirror of server-side host and access data (evidenced by negative host IDs and a FOREIGN KEY constraint failed error on an upsert_open_tab operation). This local cache seems to fail to correctly resolve access/credentials for hosts shared with a non-owner user, whereas the web app queries the server directly for each request and works correctly. This suggests a sync/cache resolution bug specific to the desktop app's local database layer, not a server-side RBAC or credential storage issue.
Happy to provide the full log file and further details if needed.
How to Reproduce
Bug: Desktop app (Windows) fails to authenticate to shared SSH hosts with "no password provided", while the web app works fine with the same account
Environment
Termix version: 2.7.1
Server: self-hosted, Docker
Client tested: Windows desktop app, both Portable build and MSI/NSIS installer — same result on both
Web app: works correctly with the same account
Summary
Hosts shared to a non-owner user (a service account used by multiple engineers) fail to authenticate over SSH from the Windows desktop app, with the SSH log showing Password authentication requested but no password provided, even though the underlying credential exists, is valid, and connecting to the same host from the web app with the same account works without any issue.
Steps to reproduce
As an admin/owner, create an SSH host using a saved Credential (not a typed-in password).
Share the host with a Role (RBAC) that the target user belongs to.
Log in as the target user on the web app → connect to the host → works fine.
Log in as the same target user on the Windows desktop app (tested both Portable and MSI/NSIS builds) → attempt to connect to the same host → connection fails.
Result
Desktop app connection log:
Starting address resolution of <host_ip>
Connecting to <host_ip> port 22
Loaded 0 jump host(s) from server-side host data
Credentials resolved from server-side host data
Starting address resolution of <host_ip>
Connecting to <host_ip> port 22
Using password authentication
Starting SSH session
Authenticating as admin
Délai de connexion dépassé / Connexion rejetée par le serveur
(on other attempts): Password authentication requested but no password provided
Backend log (termix-main.log) around the same timestamps shows a cascade of access resolution failures for the same user, across many host IDs (negative IDs, likely local cache entries), immediately before the failed connection attempt:
[WARN] User <user_id> cannot resolve host -160 [op:fetch_host_access_denied,user:<user_id>,host:-160]
[WARN] User <user_id> cannot resolve host -161 [op:fetch_host_access_denied,user:<user_id>,host:-161]
... (repeats for ~15 host IDs)
[ERROR] Failed to upsert open tab [op:upsert_open_tab,user:<user_id>]
SqliteError: FOREIGN KEY constraint failed
at PreparedQuery.run (.../drizzle-orm/better-sqlite3/session.js:72:22)
...
[INFO] Terminal WebSocket connection established [op:terminal_ws_connect,user:<user_id>,session:<session_id>]
[INFO] Resolving SSH host configuration [op:terminal_host_resolve,user:<user_id>,host:-207,session:<session_id>]
[ERROR] Password authentication requested but no password provided
[ERROR] SSH connection timeout [op:ssh_connect,host:-207]
What we've already ruled out
Not a credential/sharing configuration issue: tested with the host using a proper saved Credential (not typed password), with "Shared SSH Authentication" enabled.
Not specific to RBAC role-sharing: tested sharing the host directly to the individual user instead of via a Role — same failure.
Not specific to the Portable build: tested with the MSI/NSIS installer as well — same failure.
Web app works flawlessly with the exact same user account and the exact same host/credential.
Expected behavior
The desktop app should resolve and use the shared credential the same way the web app does, without the fetch_host_access_denied errors, and should successfully authenticate over SSH.
Suspected area
The desktop app appears to maintain a local SQLite cache/mirror of server-side host and access data (evidenced by negative host IDs and a FOREIGN KEY constraint failed error on an upsert_open_tab operation). This local cache seems to fail to correctly resolve access/credentials for hosts shared with a non-owner user, whereas the web app queries the server directly for each request and works correctly. This suggests a sync/cache resolution bug specific to the desktop app's local database layer, not a server-side RBAC or credential storage issue.
Happy to provide the full log file and further details if needed.
Additional Context
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the Windows desktop failure and inspect termix-main.log around fetch_host_access_denied, upsert_open_tab, and terminal_host_resolve. Trace the desktop SQLite cache and shared-host access resolution using the reported negative host IDs and foreign-key error. Done means a non-owner user can connect with a shared saved credential without access-resolution errors or missing-password failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, sqlite
- Domain
- authentication, databases, desktop, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100