# 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](/mcp/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](https://github.com/bvisible/mcp-ssh-manager/issues/49) · 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](https://github.com/bvisible/mcp-ssh-manager/issues/28) · 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
1. `npm install -g 

[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/22) · 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
1. 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 <ENTER> (or just <ENTER>) to continue. Now I'm getting timeout while starting the persistent session with ssh_session_start.
2. 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](https://github.com/bvisible/mcp-ssh-manager/issues/19) · 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](https://github.com/bvisible/mcp-ssh-manager/issues/14) · 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):

```js
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](https://github.com/bvisible/mcp-ssh-manager/issues/9) · 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](https://github.com/bvisible/mcp-ssh-manager/issues/8) · 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` 这套独立的分组机制，但它与服务器定义本身是分离的两份数据，存在以下痛点：

1. **无法从服务器配置本身直接导出/导入分组信息**：当需要把 ssh-manager 的配置迁移/同步到其他工具（比如把服务器清单导出给团队内部的堡垒机管理工具、或从其他 SSH 管理工具的分组结构导入进来）时，`ssh_servers` 表本身不带分组标签，只能额外维护一份 `.server-groups.json` 做映射，容易出现两份数据不同步。
2. **按组查看/操作不够直观**：`ssh_list_servers` 的输出里没有分组信息，如果想快速筛选"某个环境/项目下的所有服务器"，只能人肉看命名前缀或者去查 `.server-groups.json`。

## 期望的方案

在服务器定义里增加一个可选的 `gr

[Read the thread](https://github.com/bvisible/mcp-ssh-manager/issues/55) · 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](https://github.com/bvisible/mcp-ssh-manager/issues/52) · 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:

```js
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).
