导入导出
XTerminal 支持批量导入和导出连接配置,方便数据迁移、备份和团队共享。
导入连接
导入功能允许你从文本或 JSON 格式批量添加连接配置。SSH、RDP、Telnet、隧道和 VNC 都使用同一个导入入口,弹窗会根据当前协议显示对应示例。
打开导入窗口
- 切换到本地仓库(导入仅支持本地仓库)
- 点击工具栏的 导入 按钮
- 在弹出的对话框中输入或粘贴数据

JSON 模式适合从备份或脚本生成的数组导入;如果需要人工逐行维护,也可以切换到文本模式:

两种模式都应先检查地址、端口、用户名和备注,再点击确认导入。截图使用保留地址和无密码的演示数据,不会连接到真实主机。
导入模式
导入窗口顶部可以切换两种模式:
| 模式 | 说明 |
|---|---|
| 文本 | 每行一条记录,支持竖线分隔或键值对格式 |
| JSON | 标准 JSON 数组格式,适合程序生成的数据 |
文本格式
文本模式每行表示一条连接,支持两种语法。不同协议的字段略有差异,下面先以 SSH 为例。
竖线分隔格式
host[:port] | user | pass | title | note
示例:
192.168.1.10 | root | 123456 | Dev Server | 开发机
user@10.0.0.3:2222 | | | 测试机 | 临时
- 各字段用竖线
|分隔 - 字段可以为空(保留空格)
- 端口可以写在地址后面用冒号分隔
键值对格式
host=值 user=值 port=值 auth=值 title=值 ...
示例:
host=10.0.0.5 user=root auth=privateKey privateKey="/Users/me/.ssh/id_rsa" title=KeyLogin
支持的键:
| 键名 | 说明 | 示例 |
|---|---|---|
| host | 主机地址 | 192.168.1.10 |
| port | 端口号 | 22 |
| user / username | 用户名 | root |
| pass / password | 密码 | 123456 |
| title | 连接名称 | MyServer |
| note | 备注 | 生产服务器 |
| auth | 认证方式 | password / privateKey |
| privateKey | 私钥路径 | /Users/me/.ssh/id_rsa |
| identityId | 凭证 ID | xxx |
注释
以 # 或 // 开头的行会被忽略:
# 这是注释
// 这也是注释
192.168.1.10 | root | 123456 | Server1
其他协议文本示例
RDP:
10.0.0.8 | Administrator | P@ssw0rd! | Windows Server | 运维桌面
address=10.0.0.9 port=3390 username=admin password=xxx title="RDP Target" fullscreen=1 colors=32
Telnet:
192.168.1.33:23 | admin | telnet123 | 交换机 | 核心
host=10.1.1.1 port=23 user=guest password=guest title="路由器"
VNC:
192.168.1.88:5901 | viewer | vnc123 | VNC 桌面 | 测试桌面
host=10.0.0.8 port=5900 user=ops password=secret title="VNC Server" viewOnly=true scaleViewport=false shared=true
隧道:
in | server=192.168.1.10:22 | local=127.0.0.1:3306 | remote=db.internal:3306 | DB 隧道 | 开发
dynamic | server=server-uuid-1 | local=127.0.0.1:1080 | | SOCKS5 | 出口代理
JSON 格式
JSON 模式接受标准的 JSON 数组,或包含 items、list、data、connections 字段的对象。下面是 SSH 示例:
[
{
"host": "192.168.1.10",
"title": "Dev Server",
"username": "root",
"port": 22,
"note": "开发环境"
},
{
"host": "192.168.1.20",
"title": "Prod Server",
"username": "ubuntu",
"port": 2222
}
]
SSH JSON 字段说明
| 字段名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
host | string | 是 | 服务器地址(IP 或域名) | "192.168.1.10" |
port | number | 否 | SSH 端口,默认 22 | 22 |
username / user | string | 否 | 登录用户名 | "root" |
password / pass | string | 否 | 登录密码(明文) | "123456" |
title | string | 否 | 连接显示名称 | "生产服务器" |
note | string | 否 | 备注信息 | "数据库主节点" |
auth | string | 否 | 认证方式 | "password" / "privateKey" |
privateKey | string | 否 | 私钥文件路径 | "/Users/me/.ssh/id_rsa" |
passphrase | string | 否 | 私钥密码 | "keypass" |
identityId | string | 否 | 凭证 ID(已保存的凭证) | "abc123" |
timeout | number | 否 | 连接超时(毫秒) | 30000 |
keepaliveInterval | number | 否 | 心跳间隔(毫秒) | 5000 |
defaultPath | string | 否 | 默认工作目录 | "/var/www" |
initScript | string | 否 | 初始化脚本 | "source ~/.profile" |
认证方式(auth)取值
| 值 | 说明 |
|---|---|
password | 密码认证(默认) |
privateKey | 私钥认证,需配合 privateKey 字段 |
identity | 使用已保存的凭证,需配合 identityId 字段 |
keyboard | 交互式认证(2FA) |
askEveryTime | 每次连接时询问 |
完整示例
[
{
"host": "192.168.1.10",
"port": 22,
"username": "root",
"password": "123456",
"title": "开发服务器",
"note": "前端项目",
"auth": "password",
"defaultPath": "/var/www/frontend",
"timeout": 30000
},
{
"host": "10.0.0.50",
"port": 2222,
"username": "deploy",
"title": "生产服务器",
"auth": "privateKey",
"privateKey": "/Users/me/.ssh/prod_key",
"passphrase": "keypassword",
"initScript": "cd /app && source .env"
},
{
"host": "db.example.com",
"username": "admin",
"title": "数据库服务器",
"auth": "keyboard",
"note": "需要 Google Authenticator"
}
]
JSON 中的密码和私钥密码为明文存储,请注意:
- 不要将包含敏感信息的 JSON 文件上传到公开代码仓库
- 传输时使用加密渠道
- 导入完成后删除源文件
目标分组
导入窗口会显示当前分组。导入的连接会添加到当前选中的分组中:
- 如果选中 全部,连接会添加为未分组状态
- 如果选中特定分组,连接会添加到该分组
执行导入
- 输入或粘贴数据
- 确认目标分组
- 点击 确认导入 按钮
- 系统会解析数据并显示导入结果
导入完成后会提示成功导入的条数。如果部分数据解析失败,会显示跳过的条数。
导出连接
导出功能将选中的连接配置复制到剪贴板。
导出步骤
- 在连接列表中勾选要导出的连接
- 点击工具栏的 复制到剪贴板 按钮
- 连接配置会复制到系统剪贴板
- 粘贴到文本编辑器保存为文件

选中连接后,批量操作栏还会显示复制、删除、上云和并发入口。导出前请确认选中的数量和连接范围;本图只展示操作栏,没有执行复制动作。
导出内容
导出内容为文本格式,每行一条记录,使用 key=value 形式保存连接配置。不同协议会导出不同字段:SSH 会保存认证类型、密码(密码认证时)、身份凭证 ID、分组 ID 和跳板链路;RDP、VNC 和 Telnet 可能包含密码以及协议显示设置。
SSH 导出不会把已保存的私钥正文写入导出内容,但身份凭证 ID 仍然属于敏感配置引用。导出后的文件或剪贴板内容应按凭据处理。
导出示例
host=192.168.1.10 port=22 user=root authType=password password="<PASSWORD>" title="Dev Server" note="开发环境"
批量操作
复制副本
在当前仓库中创建选中连接的副本:
- 勾选要复制的连接
- 点击 复制副本 按钮
- 副本会添加到同一分组,名称后缀 "- 副本"
复制到云端
将本地仓库的连接复制到云端仓库:
- 确保当前在本地仓库
- 勾选要复制的连接
- 点击 复制到云端 按钮
- 系统会在云端创建相同的分组结构并复制连接
注意:需要先登录 XTerminal 账号才能使用此功能。云端复制仍受账号和订阅权限限制。
注意事项
仅本地仓库支持导入
导入功能仅在本地仓库模式下可用。如果你使用云端仓库,需要:
- 先切换到本地仓库
- 完成导入
- 使用 复制到云端 功能同步数据
数据安全
- 导出到剪贴板的内容可能包含密码;复制后不要粘贴到公共聊天、工单或日志。
- 导出内容不会包含 SSH 私钥正文,但可能包含密码、身份凭证 ID、代理链路 ID 或其他连接配置。
- SSH 列表中的“复制地址和密码”操作会明确复制当前认证所需的密码、私钥路径或私钥密码,使用后应立即清理剪贴板。
- 导入含有明文凭据的文本后,及时删除源文件,并通过安全渠道传输。
- 需要在不同设备迁移时,优先使用受保护的备份流程,而不是把导出文本提交到代码仓库。
兼容性
导入功能支持从其他终端或远程连接工具迁移:
- 数据格式相对通用
- 基本字段(主机、端口、用户名)兼容大多数工具
- 认证信息需要手动配置