DeepSHPlugins
dsh-ssh-logs 项目预览
GITHUB / COMMUNITY PROJECT

dsh-ssh-logs

客户端与终端JavaScriptMIT

从白名单 SSH 服务器和日志根目录读取或搜索有界日志内容,不开放任意远程命令。

1 Stars452926826 更新时间 2026-08-26
访问 GitHub 仓库
dsh-ssh-logs 项目预览

项目介绍

中文

从白名单 SSH 服务器和日志根目录读取或搜索有界日志内容,不开放任意远程命令。

English

Read and search bounded log output from allowlisted SSH servers and log roots without exposing arbitrary remote commands.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
452926826
仓库
452926826/dsh-ssh-logs
GitHub Stars
1
Forks
0
开发语言
JavaScript
许可证
MIT
最近推送
2026-08-26
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

53/ 100
维护活跃
90
文档与实用信息
85
生态关注度
9
安装便捷信号
100
项目声明信号
100

近 16 天仍在更新;README 含完整安装与使用说明;关注度尚低(1)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:452926826/dsh-ssh-logs

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-ssh-logs

English | 简体中文

A read-only SSH log tool for DeepSeek Harness. It uses the built-in @deepseek-ai/dsh-mcp-client bridge to expose three MCP tools to the model:

  • mcp__ssh_logs__list_log_servers
  • mcp__ssh_logs__read_log
  • mcp__ssh_logs__search_log

Servers are configured under fixed aliases. The model cannot select arbitrary hosts, execute arbitrary commands, or modify remote files. Every requested file must remain under an allowlisted log root.

Installation

git clone https://github.com/452926826/dsh-ssh-logs.git
cd dsh-ssh-logs
npm install
dsh plugin --profile web add "$PWD"

It can also be installed directly from GitHub:

dsh plugin --profile web add github:452926826/dsh-ssh-logs

Create ~/.dsh/ssh-logs.yml using config.example.yml as a reference. Use a dedicated read-only account on each server and authenticate with an SSH key or ssh-agent. Do not store passwords or private key contents in the YAML file.

Restart dsh web and refresh the page after configuring the plugin. The Bundle registers an MCP client so agent presets can discover the log tools.

Conversation examples

Read the last 300 lines of service/api.log from the app log root on production.

Search logs/backend.log under staging/app for request-id=abc123 and include 3 lines of context.

If a request names a physical directory instead of a root alias, the model should call list_log_servers first, map the directory to a configured root, and then call the read or search tool.

Configuration

defaults:
  maxBytes: 131072
  connectTimeoutSeconds: 10
  commandTimeoutMs: 120000

servers:
  production:
    description: Production application server
    host: prod-app.example.com
    user: log-reader
    port: 22
    identityFile: ~/.ssh/prod_log_reader
    knownHostsFile: ~/.ssh/known_hosts
    proxyJump: bastion.example.com
    roots:
      app: /srv/myapp/logs
      nginx: /var/log/nginx

Each server supports description, host, user, port, identityFile, knownHostsFile, proxyJump, roots, maxBytes, connectTimeoutSeconds, and commandTimeoutMs.

Security boundaries

  • SSH always uses BatchMode=yes, StrictHostKeyChecking=yes, and an explicit known_hosts path.
  • Servers and log roots must be configured in advance. Absolute paths, backslashes, and .. traversal are rejected.
  • The plugin only generates fixed head, tail, sed, and grep -F commands. Dynamic values are shell-quoted.
  • A request can read at most 5,000 lines or return 1,000 search matches. Output defaults to 128 KiB and has a hard 4 MiB limit.
  • Password prompts, sudo, arbitrary commands, SFTP writes, deletion, and file modification are not supported.

Enforce least privilege on the server as well: use a dedicated log-reader account, read-only ACLs, restricted source IPs, and authorized_keys restrictions when appropriate.

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目