Reported issues for mcp-ssh-manager
Pod holds 18 of 22 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to mcp-ssh-manager.
Most discussed
bug: ssh_execute_sudo ignores configured SUDO_PASSWORD due to sudo_password/sudoPassword field mismatch
Symptom
ssh_execute_sudo ignores the per-server SUDO_PASSWORD configured in .env and always falls back to running a bare sudo <command> with no piped password. On a remote host with no TTY on the SSH exec channel and no askpass helper configured, this fails with:
sudo: A terminal is required to authenticate
even though SSH_SERVER_<NAME>_SUDO_PASSWORD is set correctly and the config loader parses it without error.
Impact
Any user relying on the documented `SSH_SERVE
Read the thread · 2026-07-09 · closed · external user · 1 comment
ssh_execute with timeout < 300000ms aborts at 30s instead of the requested timeout
Summary
Any ssh_execute call with a timeout argument less than 300000 ms is silently capped to 30 s. The local-side abort fires at 30 s while the remote timeout NNN sh -c wrapper is still running with the requested value, so the user sees Command timeout after 30000ms even though they asked for 240000.
Read the thread · 2026-04-30 · closed · external user · 2 comments
Windows global install: ssh-manager fails due /bin/bash shim/path handling
Summary
On Windows (PowerShell), global install works, but ssh-manager CLI fails immediately because the generated npm shim calls /bin/bash.exe (or /bin/bash) with invalid path handling.
This blocks Quick Start commands like ssh-manager server add on native Windows shells.
Environment
- Package:
mcp-ssh-manager@3.2.2 - Install method:
npm install -g mcp-ssh-manager - OS: Windows 11
- Shell: PowerShell 7
- Node:
v22.14.0 - npm:
11.4.2
Repro steps
- `npm install -g
Read the thread · 2026-04-08 · closed · external user · 3 comments
Shell prompt configuration
I'm connecting to some hosts that have interactive steps before reaching to shell. See example below
- Would be nice to configure some autoreply during startup? Or some keystroke to be sent while logging in? In my case I have to input 'N' and
(or just ) to continue. Now I'm getting timeout while starting the persistent session with ssh_session_start. - Would be nice to configure the shell prompt instead of classic one (ex. -->)
Last unsuccessful login: Fri Mar 20 14:09:50 E
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/20) · 2026-03-31 · open · external user · 1 comment
### Configuration does not work when installed globally
Following the README after a `npm install -g mcp-ssh-manager`, and then having symlinked `/usr/local/bin/ssh-manager` to `/usr/lib/node_modules/mcp-ssh-manager/cli/ssh-manager` as a workaround for #18 , adding a server fails:
$ ssh-manager server add ... Configuration Summary
Name: something Host: something.example.com User: jantman Port: 22 Auth: key Key: /hom
Read the thread · 2026-03-28 · closed · external user · 2 comments
Is npx actually supported?
Doesn't seem like npx installs will work until there's a bin entry in the package.json
...
{
"bin": {
"mcp-ssh-manager": "src/index.js"
}
...
Read the thread · 2026-03-12 · closed · external user · 2 comments
Missing src/config.js – Application fails to start
Bug: Missing src/config.js – Application fails to start
Description
npm start (or node src/index.js) immediately crashes with ERR_MODULE_NOT_FOUND because src/config.js is missing from the repository.
The file is imported in src/index.js (line 32–36):
import {
OUTPUT_LIMITS,
TIMEOUTS,
truncateOutput,
formatJSONResponse
} from './config.js';
However, src/config.js has never been committed to the repository (confirmed via `git log --all -- src/config
Read the thread · 2026-02-13 · closed · external user · 1 comment
Fails on win11 with claude code
Hi, freshly installed and gave this a try but it get's an issue:
2026-02-09T11:00:21.222Z [ERROR] MCP server "ssh-manager" Server stderr: node:path:478 validateString(arg, 'path'); ^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined at Object.join (node:path:478:7) at file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/mcp-ssh-manager/src/ssh-key-manager.js:8:31 at ModuleJob.run (node:internal/modules/esm/module_job:27
Read the thread · 2026-02-09 · closed · external user · 1 comment
Most recent
功能请求:为 ssh_servers 配置增加 group 字段
需求背景
目前 .env / TOML 配置中每台服务器的定义都是扁平结构(例如 [ssh_servers.gitea_runner34]),没有原生的分组字段。虽然项目已经提供了 ssh_group_manage / .server-groups.json 这套独立的分组机制,但它与服务器定义本身是分离的两份数据,存在以下痛点:
- 无法从服务器配置本身直接导出/导入分组信息:当需要把 ssh-manager 的配置迁移/同步到其他工具(比如把服务器清单导出给团队内部的堡垒机管理工具、或从其他 SSH 管理工具的分组结构导入进来)时,
ssh_servers表本身不带分组标签,只能额外维护一份.server-groups.json做映射,容易出现两份数据不同步。 - 按组查看/操作不够直观:
ssh_list_servers的输出里没有分组信息,如果想快速筛选"某个环境/项目下的所有服务器",只能人肉看命名前缀或者去查.server-groups.json。
期望的方案
在服务器定义里增加一个可选的 `gr
Read the thread · 2026-07-20 · closed · outside contributor · 0 comments
Add ForwardAgent support per server config
Summary
Add support for SSH agent forwarding (ForwardAgent yes equivalent) on a per-server basis. This allows processes running on the remote server to authenticate to other SSH hosts using the keys held in the local ssh-agent — a common requirement, e.g., running git clone over SSH on a remote server that needs a local GitHub key.
Background
The ssh2 npm library already supports this via the agentForward connection option:
agentForward- boolean - Set to true to use OpenSS
Read the thread · 2026-07-12 · closed · external user · 1 comment
ssh_db_query (MySQL): row_count is off by one (counts the wrapper line, not result rows)
Summary
ssh_db_query reports row_count one greater than the actual number of rows: 1 row → row_count: 2, 13 rows → 14, and a 0-row result → row_count: 2.
Affected code
src/index.js (v3.5.0), in the db-query handler:
const output = result.stdout.trim();
const lines = output.split('\n');
...
row_count: lines.length,
For MySQL, buildMySQLQueryCommand() wraps results with awk 'BEGIN{print "["} ... END{print "]"}', so output looks like:
[
{"row":1,"data":"...
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/45) · 2026-06-25 · closed · outside contributor · 0 comments
### ssh_db_query (MySQL): backtick-quoted identifiers are shell-evaluated, corrupting queries (cross-DB joins return empty) + command-injection risk
## Summary
For MySQL, `ssh_db_query` builds the remote command by interpolating the raw SQL into a **double-quoted** shell string (`mysql ... -e "${query}" ...`). The remote shell therefore evaluates backticks `` `...` `` (command substitution) and `$...` before `mysql` ever sees the query. Any SQL that uses backtick-quoted identifiers — e.g. a hyphenated database name `` `my-db`.Table `` — is silently corrupted and returns empty/incorrect results **with no error**. The same construction also al
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/44) · 2026-06-25 · closed · outside contributor · 0 comments
### Cryptographic server verification for mcp-ssh-manager — BHC-S attestation in 3 lines
Your v3.4.1 changelog caught my eye. You added curve25519-sha256, rsa-sha2-512, and the ETM HMAC variants to support modern OpenSSH 9.x handshakes. That's careful cryptographic work. Most MCP maintainers don't think at that level.
There's a gap one layer above SSH, though. When Claude Code connects to mcp-ssh-manager, it trusts by hostname that the server is your published code. The server has direct SSH access to production. But there's no cryptographic proof that the MCP process itself hasn't
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/37) · 2026-05-18 · closed · external user · 0 comments
### Bug: Environment variable names mismatch between documentation/code and CLI-generated config
### Bug: Environment variable names mismatch between documentation/code and CLI-generated config
**Version:** 3.4.0
**Problem:**
`config-loader.js` looks for environment variables with names:
- `SSH_SERVER_{NAME}_KEYPATH` (no underscore between DEFAULT and DIR)
- `SSH_SERVER_{NAME}_DEFAULT_DIR`
But CLI and documentation suggest different names:
- `SSH_SERVER_{NAME}_KEY_PATH` (with underscore)
- `SSH_SERVER_{NAME}_DEFAULT_DIR` (correct)
**Code location:** `src/config-loader.js` lines 139-142
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/33) · 2026-05-12 · open · external user · 1 comment
### server add accepts hyphens in server names, producing invalid env var keys that MCP silently ignores
## Summary
`ssh-manager server add` accepts hyphens in server names (the prompt itself suggests `web-server` as an example), but hyphens are invalid in POSIX env var names. The resulting `SSH_SERVER_WEB-SERVER_*` keys are silently ignored by the MCP loader, while the CLI parser still reads them. Result: `ssh-manager server list` shows the server, but MCP clients see zero configured servers.
## Reproduction
```bash
npm install -g mcp-ssh-manager
ssh-manager server add
# Server name: web-server
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/25) · 2026-04-27 · closed · external user · 1 comment
### ssh-manager script isn't set up as a binary
Following the README after a `npm install -g mcp-ssh-manager`, the `ssh-manager` command doesn't exist, only `mcp-ssh-manager`. It appears that the `cli/ssh-manager` script isn't declared as a bin in the package, so the link is never set up and it never ends up in path.
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/18) · 2026-03-28 · closed · external user · 1 comment
### SSH servers not loaded — hardcoded `__dirname` path ignores `process.cwd()`
## Summary
The MCP server fails to load SSH server configurations from `.env` because `index.js` hardcodes the `.env` path relative to `__dirname` (the module directory), while `config-loader.js` documents `process.cwd()` as the default path. These two paths are almost never the same in real deployments.
## Environment
- mcp-ssh-manager version: 3.2.0
- Node.js: v22.17.1
- OS: Linux Ubuntu 25.10
- npm install -g mcp-ssh-manager
## Steps to Reproduce
1. Install mcp-ssh-manager globally via n
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/16) · 2026-03-20 · closed · external user · 1 comment
### Feature Request: SSH ProxyJump / Bastion Host Support
## Feature Request: SSH ProxyJump / Bastion Host Support
### Problem
Currently, `mcp-ssh-manager` only supports direct SSH connections. In many real-world environments, servers are behind a bastion/jump host and cannot be accessed directly. For example:
Local Machine → Bastion Host (public IP) → Target Server (private IP / whitelisted)
There is no way to configure this in the current environment variable schema (`SSH_SERVER_{NAME}_HOST`, `_USER`, `_PASSWORD`, etc.).
### Proposed Sol
[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/15) · 2026-03-15 · closed · external user · 1 comment
The remaining reports are on [the project's issue tracker](https://github.com/bvisible/mcp-ssh-manager/issues).