SSH 远程与 SFTP
Dinotty 内建 SSH 客户端,可连接到远程主机作为工作区的活动连接。连接后终端、文件浏览、命令收藏都在远程主机上执行,体验与本地一致。
新建 SSH 连接
打开右侧 SSH 面板(侧边栏服务器图标),点击右上角 + 按钮新建连接:
| 字段 | 说明 |
|---|---|
| 名称 | 显示名称,可留空(用 host 作名) |
| 主机 | 主机名或 IP |
| 端口 | 默认 22 |
| 用户名 | 登录用户 |
| 认证方式 | 密码 / 密钥 |
| 密钥路径 | 选择密钥文件(密钥认证时) |
| 密码短语 | 密钥的 passphrase(如适用) |
| 分组 | 可选,用于在面板里分组显示 |
连接复用
SSH 配置保存为 profile,可在多个工作区中复用。每个工作区同时只能激活一个 SSH 连接。
认证方式
密码认证
输入用户密码,连接时弹出密码框。密码可选「保存到本地钥匙串」,避免每次输入。
密钥认证
选择私钥文件路径(默认 ~/.ssh/id_rsa、~/.ssh/id_ed25519 等)。如果私钥有 passphrase,连接时弹窗输入。
支持 OpenSSH 格式和 PEM 格式。
host_key 校验
首次连接某主机时,服务端会获取对方的 host_key 并显示指纹:
- 指纹核对:与已知正确指纹对比(如云服务商控制台显示的指纹)
- 确认接受:接受后 host_key 保存到本地
~/.ssh/known_hosts - 变更告警:后续连接若 host_key 变化,会高亮警告并拒绝连接(防止中间人攻击)
拒绝未知 host_key
不要在不可信网络下接受未知 host_key,可能是中间人攻击。
SFTP 文件管理
SSH 连接建立后,工作区的文件浏览器自动切换到 SFTP 模式:
- 浏览:远程目录树展开
- 编辑:双击文件下载到临时缓存,用 Monaco 编辑器编辑
- 保存:编辑后自动上传回远程
- 上传:从本地拖拽文件到文件浏览器
- 下载:右键文件 -> 下载
- 删除 / 重命名:右键菜单
SFTP 操作走同一 SSH 通道,无需额外端口。
分屏继承连接
工作区激活了 SSH 连接后,所有新分屏的终端 pane 都会自动继承该连接:
- 在 pane A 连接 SSH
Cmd + \新建分屏 pane B- pane B 自动登录到同一远程主机
这样可以在远程主机上开多个 shell,比如一个跑 agent、一个看日志、一个编辑配置。
切换到本地
工作区只能有一个活动连接。要从 SSH 切回本地:
- Command Palette(
Cmd + Shift + P)-> 输入connection.local/disconnect - 侧边栏服务器列表:当前连接项右键 -> 断开
切换后所有新 pane 走本地 shell;已有 pane 保持原连接直到关闭。
SSH 配置文件
Dinotty 不会读取 ~/.ssh/config 的 Host 别名--所有连接在面板里独立管理。如果你习惯用 ~/.ssh/config,可以把别名对应的 host/port/user 直接填到 Dinotty 的 SSH profile 里。
已知限制
- SSH Agent 转发:暂不支持
-A,需要时在远程手动配置 - 跳板机(ProxyJump):暂不支持,需要时配置 SSH 隧道
- 端口转发:暂不支持
-L/-R
