MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / SSHPlugin

Class SSHPlugin

ssh/ssh.ts:290–1561  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

288const help_text = `🔐 <b>SSH管理插件</b>
289
290<b>密钥管理:</b>
291• <code>${mainPrefix}ssh gen add</code> - 生成新密钥并追加到现有密钥
292• <code>${mainPrefix}ssh gen replace</code> - 生成新密钥并替换所有旧密钥
293• <code>${mainPrefix}ssh keys</code> - 查看当前授权的所有密钥
294• <code>${mainPrefix}ssh keys clear</code> - 清空所有授权密钥
295• <code>${mainPrefix}ssh keys export</code> - 导出所有密钥到文件
296
297<b>服务器配置:</b>
298• <code>${mainPrefix}ssh passwd &lt;新密码&gt;</code> - 修改root密码
299• <code>${mainPrefix}ssh port &lt;端口号&gt;</code> - 修改SSH端口
300• <code>${mainPrefix}ssh pwauth on/off</code> - 开启/关闭密码登录
301• <code>${mainPrefix}ssh keyauth on/off</code> - 开启/关闭密钥登录
302• <code>${mainPrefix}ssh rootlogin on/off/keyonly</code> - 控制root登录方式
303• <code>${mainPrefix}ssh enableroot &lt;密码&gt;</code> - 启用root账户直接登录
304• <code>${mainPrefix}ssh open &lt;端口&gt;</code> - 开放防火墙端口
305• <code>${mainPrefix}ssh close &lt;端口&gt;</code> - 关闭防火墙端口
306• <code>${mainPrefix}ssh restart</code> - 重启SSH服务
307
308<b>管理命令:</b>
309• <code>${mainPrefix}ssh set @username</code> - 设置发送到指定用户
310• <code>${mainPrefix}ssh set me</code> - 重置为默认发送到收藏夹
311• <code>${mainPrefix}ssh info</code> - 查看SSH状态和配置
312
313<b>示例:</b>
314<code>${mainPrefix}ssh gen replace</code> - 生成新密钥并清空旧密钥
315<code>${mainPrefix}ssh keys export</code> - 导出所有密钥到文件`;
316
317class SSHPlugin extends Plugin {
318 cleanup(): void {
319 ConfigManager.cleanup();
320 }
321
322 async setup(): Promise<void> {
323 // Re-initialize ConfigManager after cleanup/reload
324 await ConfigManager.get(CONFIG_KEYS.TARGET_CHAT);
325 }
326
327 description: string = `SSH管理和服务器配置\n\n${help_text}`;
328
329 cmdHandlers = {
330 ssh: async (msg: Api.Message) => {
331 await this.handleSSH(msg);
332 }
333 };
334
335 // 主命令处理器
336 private async handleSSH(msg: Api.Message): Promise<void> {
337 const client = await getGlobalClient();
338 if (!client) {
339 await msg.edit({ text: "❌ 客户端未初始化", parseMode: "html" });
340 return;
341 }
342
343 // 检查执行权限 - 只能在收藏夹或指定会话执行
344 const isPrivate = msg.isPrivate;
345 const chatId = msg.chatId?.toString();
346 const userId = msg.senderId?.toString();
347 const targetChat = await ConfigManager.get(CONFIG_KEYS.TARGET_CHAT);

Callers

nothing calls this directly

Calls 1

handleSSHMethod · 0.95

Tested by

no test coverage detected