Skip to content

又一个基于 Electron + Node.js 开发的现代化 SSH 客户端,提供直观的图形界面和强大的功能,让远程服务器管理变得简单高效。

License

Notifications You must be signed in to change notification settings

chankay/AnotherSSH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnotherSSH

Another way to connect - 一个现代化的跨平台 SSH 客户端

License: MIT Electron Platform Release

一个基于 Electron + Node.js 开发的现代化 SSH 客户端,提供直观的图形界面和强大的功能,让远程服务器管理变得简单高效。

🎯 为什么选择 AnotherSSH?

在众多 SSH 客户端中,我们提供了"另一种选择"(Another way)。

开发初衷

在多平台工作场景下(macOS、Windows、Linux),我们需要一个:

  • 跨平台通用:一套工具在所有系统上使用体验一致
  • 简单易用:无需复杂配置,开箱即用
  • 功能完整:SSH 连接、文件传输、会话管理一应俱全
  • 完全免费:开源免费,无任何限制

我们的特色

  • 🎨 现代化界面:深色主题、11 款预设配色、自定义主题
  • 🚀 高效操作:终端分屏、批量命令、快捷键支持
  • 📁 文件管理:图形化 SFTP、拖拽上传、批量下载
  • 🔄 配置同步:WebDAV 云端同步,多设备无缝切换
  • 🔐 安全可靠:密码加密存储、SSH2 协议、密钥认证
  • 💾 会话管理:分组管理、标签颜色、搜索过滤
  • 📝 日志记录:自动记录会话日志,方便回溯

AnotherSSH = 简单 + 易用 + 强大 🚀

📸 界面预览

主界面 - 深色主题

主界面

终端分屏 - 同时管理多台服务器

终端分屏

SFTP 文件管理 - 图形化文件传输

SFTP 文件管理

会话管理 - 分组和搜索

会话管理

主题配置 - 11 款预设主题

主题配置

批量命令执行 - 同步输入模式

批量命令

📥 下载

GitHub(推荐)

访问 GitHub Releases 下载最新版本:

Gitee(国内镜像)⚡

访问 Gitee Releases 下载最新版本(国内访问更快):

💡 自动同步: GitHub 和 Gitee 的代码和 Release 会自动保持同步

安装包

  • macOS: AnotherSSH-{version}-mac-arm64.dmg (Apple Silicon) 或 AnotherSSH-{version}-mac-x64.dmg (Intel)
  • Windows: AnotherSSH-{version}-win-x64.exe (Intel/AMD 64位) 或 AnotherSSH-{version}-win-arm64.exe (ARM64)
  • Linux: AnotherSSH-{version}-linux-x64.AppImage (Intel/AMD 64位) 或 AnotherSSH-{version}-linux-arm64.AppImage (ARM64)

macOS 用户注意 ⚠️

由于应用未经过 Apple 签名,首次打开时会提示"已损坏"。请使用以下方法之一:

方法 1: 右键打开(推荐)

  1. 右键点击应用
  2. 选择"打开"
  3. 点击"打开"确认

方法 2: 终端命令

xattr -cr /Applications/AnotherSSH.app

✨ 功能特性

SSH 连接管理

  • ✅ SSH2 协议支持
  • ✅ 密码和密钥认证
  • ✅ 多标签页终端
  • ✅ 会话保存和管理
  • ✅ 会话分组管理(支持嵌套子分组)
  • ✅ 会话配置加密存储
  • ✅ 会话搜索功能
  • ✅ 会话导入/导出
  • ✅ 连接状态可视化指示器
  • ✅ 自动重连功能
  • ✅ 主密码保护(可选)

终端功能

  • ✅ 完整的终端模拟(基于 xterm.js)
  • ✅ 本地终端支持(macOS/Windows/Linux)
  • ✅ 支持中文等多语言字符集(UTF-8)
  • ✅ 终端大小自适应
  • ✅ 复制粘贴支持
  • ✅ 多会话同时运行
  • ✅ 终端分屏(2-4 个,支持水平/垂直/网格布局)
  • ✅ 批量命令执行(同步输入模式)
  • ✅ 终端内搜索功能
  • ✅ 字体大小快速调整

SFTP 文件传输

  • ✅ 图形化文件管理器
  • ✅ 文件上传/下载
  • ✅ 拖拽上传支持
  • ✅ 批量文件下载
  • ✅ 文件/文件夹操作(重命名、删除、新建)
  • ✅ 传输进度显示
  • ✅ 传输取消功能
  • ✅ 右键菜单支持

用户体验

  • ✅ 现代化深色主题
  • ✅ 浅色主题支持
  • ✅ 11 款预设主题配色
  • ✅ 自定义主题和配色
  • ✅ 终端字体和样式自定义
  • ✅ 完整的应用菜单栏(文件、编辑、查看、窗口、帮助)
  • ✅ 全局快捷键支持
  • ✅ 侧边栏宽度可调(拖拽调整 200-600px)
  • ✅ 实时通知提示
  • ✅ 双击快速连接
  • ✅ 连接状态反馈
  • ✅ 响应式界面设计
  • ✅ 侧边栏收起/展开
  • ✅ 快速启动(优化加载性能)
  • ✅ 精美的关于对话框
  • ✅ 中英文双语支持

配置同步

  • ✅ WebDAV 云端同步
  • ✅ 支持坚果云、Nextcloud、Synology NAS
  • ✅ 智能合并策略
  • ✅ 自动同步支持
  • ✅ 加密数据传输
  • ✅ 日志文件同步(可选)

版本更新

  • ✅ 自动检查更新
  • ✅ 手动检查更新
  • ✅ 版本号显示
  • ✅ 一键跳转下载

日志管理

  • ✅ 会话日志自动记录
  • ✅ 日志查看和搜索
  • ✅ 日志导出功能
  • ✅ 日志文件管理
  • ✅ 会话时长统计

🚀 技术栈

  • Electron 28 - 跨平台桌面应用框架
  • Node.js - JavaScript 运行时
  • ssh2 - SSH 连接库
  • ssh2-sftp-client - SFTP 文件传输
  • @xterm/xterm - 终端模拟器
  • node-pty - 本地终端 PTY 支持
  • webdav - WebDAV 客户端(配置同步)

📦 开发者指南

安装依赖

npm install

开发运行

# 开发模式(带开发者工具)
npm run dev

# 生产模式
npm start

本地打包

# 打包所有平台
npm run build

# 仅打包 macOS
npm run build:mac

# 仅打包 Windows
npm run build:win

# 仅打包 Linux
npm run build:linux

发布新版本

使用 GitHub Actions 自动发布:

# 1. 更新 package.json 中的版本号
# 2. 提交更改
git commit -am "chore: bump version to x.x.x"

# 3. 创建并推送标签
git tag vx.x.x
git push && git push origin vx.x.x

GitHub Actions 会自动构建并发布到 Releases。

📖 使用指南

完整的使用说明请查看 用户使用手册

快速开始

  1. 本地终端:点击"本地终端"快速打开本地 Shell(macOS: zsh/bash, Windows: cmd.exe)
  2. 新建连接:点击"新建连接",填写主机、端口、用户名和密码/密钥
  3. 保存会话:勾选"保存此会话配置"以便下次快速连接
  4. 快速连接:双击已保存的会话即可连接
  5. SFTP 传输:点击标签页上的 📁 图标打开文件管理器

核心功能

  • 应用菜单:完整的菜单栏(文件、编辑、查看、窗口、帮助),所有功能都有快捷键
  • 主密码保护:首次启动可设置主密码,保护您的会话数据(可选功能)
  • 侧边栏调整:拖拽侧边栏右边缘调整宽度(200-600px),Ctrl/Cmd + B 收起/展开
  • 会话分组:创建分组管理会话,支持嵌套子分组,折叠/展开状态自动保存
  • 终端分屏Ctrl/Cmd + Shift + D/E 创建 2-4 个分屏,同时操作多台服务器
  • 批量命令:点击"同步输入"按钮,同时向多个终端发送命令
  • 自动重连:连接意外断开时自动重连(可在设置中配置)
  • 终端搜索Ctrl/Cmd + F 在终端中搜索文本
  • 字体调整Ctrl/Cmd + +/-/0 快速调整终端字体大小
  • 标签颜色:为不同环境设置不同颜色标识
  • 配置同步:使用 WebDAV 在多设备间同步配置
  • 多语言:支持中文和英文界面

更多文档

更多文档

🗂️ 项目结构

ssh-client/
├── src/
│   ├── main/                 # 主进程
│   │   ├── main.js          # Electron 主入口
│   │   ├── ssh-manager.js   # SSH 连接管理
│   │   ├── sftp-manager.js  # SFTP 文件传输
│   │   └── session-store.js # 会话存储(加密)
│   └── renderer/            # 渲染进程
│       ├── index.html       # 主界面
│       ├── styles.css       # 样式
│       └── app.js          # 前端逻辑
├── package.json
└── README.md

🔐 安全特性

  • 主密码保护:可选的主密码功能,保护您的会话数据(类似 MobaXterm、Xshell)
  • 密码加密:使用 AES-256-CBC 加密存储会话密码
  • 主密码加密:使用 PBKDF2 算法加密主密码(100,000 次迭代)
  • 密钥保护:加密密钥存储在本地
  • 安全传输:SSH2 协议加密通信
  • 会话隔离:每个会话独立运行

🎨 界面预览

  • 深色主题:护眼的深色配色方案
  • 分组管理:清晰的会话组织结构
  • 多标签页:同时管理多个连接
  • SFTP 管理器:直观的文件操作界面

📝 配置文件位置

  • macOS: ~/Library/Application Support/anotherssh/
  • Windows: %APPDATA%/anotherssh/
  • Linux: ~/.config/anotherssh/

配置文件:

  • sessions.json - 会话配置(加密)
  • .key - 加密密钥
  • .master - 主密码哈希(如果设置了主密码)
  • .salt - 主密码盐值(如果设置了主密码)
  • .prompted - 主密码提示标记
  • webdav-config.json - WebDAV 同步配置
  • logs/ - 会话日志文件夹

🐛 故障排除

连接失败:

  • 检查主机地址和端口是否正确
  • 确认用户名和密码/密钥是否正确
  • 检查网络连接和防火墙设置

SFTP 无法使用:

  • 确保 SSH 连接正常
  • 检查服务器是否支持 SFTP
  • 尝试重新连接

传输中断:

  • 检查网络连接
  • 大文件传输建议使用有线网络
  • 可以点击取消后重新传输

忘记主密码:

  • 主密码无法找回,需要删除配置文件重新设置
  • 删除 ~/.config/anotherssh/.master.salt 文件
  • 重新启动应用,会话配置将被清空

启动慢:

  • 首次启动会加载所有会话,会话数量多时可能稍慢
  • 应用已优化启动性能,会话列表会优先显示
  • 如果持续缓慢,可以尝试清理日志文件

� 许可证发

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📧 联系方式

如有问题或建议,请提交 Issue。


注意:首次运行需要安装依赖,请确保已安装 Node.js 和 npm。

About

又一个基于 Electron + Node.js 开发的现代化 SSH 客户端,提供直观的图形界面和强大的功能,让远程服务器管理变得简单高效。

Resources

License

Stars

Watchers

Forks

Packages

No packages published