跳到主要内容

SSH 连接管理

SSH 仍然是 NyaTerm 最完整的一类会话。除了基础登录外,SSH 连接还可以进一步挂接:

  • SFTP 文件浏览器
  • 远程资源监控
  • 代理
  • 跳板机
  • OTP 绑定与自动填充
  • 端口隧道

如果你第一次接触 NyaTerm,通常建议先把 SSH 连接配置好,再去扩展文件、终端增强和网络能力。

创建 SSH 连接

新建连接 窗口切换到 SSH 标签后,可以填写这些信息:

基本信息

字段说明
连接名称在已保存连接列表中的显示名称
主机服务器 IP 或域名
端口默认 22
用户名登录用户名
图标用于区分不同环境或服务
分组把连接整理到文件夹中
描述记录用途、环境或备注

认证方式

NyaTerm 支持三种 SSH 认证方式:

  • 密码
  • 私钥
  • 无认证(none)

你可以直接选择已经保存的密码或私钥,而不必每次重复填写。

无认证(none) 适用于通过其他方式完成认证的主机(例如部分跳板机或网关流程,或接受空认证的服务器)。仅在目标主机确实不需要任何 SSH 层凭证时才使用。

密码认证

适合:

  • 临时测试机
  • 还未发放私钥的环境
  • 与 OTP 联合使用的账号

私钥认证

适合:

  • 日常远程运维
  • 多台主机复用同一身份
  • 需要配合跳板机或自动化流程的场景

私钥和密码都可以在 Security/Auth 面板中统一管理。

高级配置

SSH 表单的高级区域可以把连接从“能连上”扩展成“适合日常使用”的工作流配置。

代理

如果需要通过代理建立 SSH 连接,可以直接为当前连接选择已保存的代理配置。

当前代理支持:

  • SOCKS5
  • HTTP

代理记录中可保存:

  • 名称
  • 协议
  • 主机
  • 端口
  • 用户名 / 密码

跳板机

如果目标主机不能直连,可以为当前 SSH 连接指定另一个已保存的 SSH 连接作为 跳板机

适合的场景:

  • 先进入堡垒机,再访问内网服务器
  • 分环境隔离的生产网络
  • 多层 SSH 登录链路

登录后命令

可以为当前 SSH 连接配置一条在登录后自动执行的命令。会话建立、shell 就绪后,NyaTerm 会自动运行它。

常见用途:

  • 切换到固定的工作目录(cd
  • 激活某个环境(例如 tmux/screen、conda)
  • 在连接时执行一条固定的初始化命令

该命令会在登录后作为终端输入发送,因此其行为等同于你自己手动输入这条命令。

X11 转发

X11 转发允许远端 Linux 图形程序通过 SSH 显示到本机。

NyaTerm 不内置 X server,用户需要自行安装并启动:

  • Windows: VcXsrv / Xming
  • macOS: XQuartz
  • Linux: Xorg / Xwayland

远端服务器需要:

  • sshd_config 开启 X11Forwarding yes
  • 安装 xauth

如果需要覆盖本机 DISPLAY,可以在 设置 → 终端 → 本地 X11 DISPLAY 中填写,例如 Windows 常用 localhost:0,Linux/macOS 常用 :0

多路复用 SSH 会话

NyaTerm 可以在同一条 SSH 连接上多路复用多个终端会话。向同一主机打开新的终端时,会复用已有的已认证连接,而不必每次重新认证。

带来的好处:

  • 新终端打开更快
  • 更少的认证提示 / OTP 输入
  • 对服务器的负载更低

OTP 绑定

如果目标环境要求二次验证码,可以把一个 OTP 条目绑定到当前 SSH 连接。

绑定后有两种常见工作方式:

  • 只是在认证时快速取码
  • 开启 自动填充 OTP,在支持的交互流程中直接带入验证码

这部分可以结合 OTP 与认证 一起使用。

已保存连接的管理

保存后的连接会出现在右侧 已保存连接 面板中。常见操作包括:

  • 双击直接连接
  • 按分组组织连接
  • 编辑已有配置
  • 复制连接作为新模板
  • 重新连接已存在的会话来源

如果你维护大量主机,建议用分组、图标和描述把“环境 / 项目 / 角色”区分开。

导入其他客户端的会话

NyaTerm 支持导入其他客户端的会话配置,目前可导入:

  • Xshell.xts
  • MobaXterm.mxtsessions
  • WindTerm.sessions
  • NyaTerm JSON.json

从 NyaTerm JSON 导入

如果你需要批量整理连接清单,可以选择 NyaTerm JSON 并导入一个 .json 文件。这个格式适合从脚本、资产清单或其他系统生成会话数据。

示例文件:session-import-sample.json

JSON 顶层字段:

  • version:当前为 1
  • groups:要预先创建的会话分组,使用 path 表示层级
  • passwords:可复用的已保存密码条目,使用 ref 在本文件内引用
  • ssh_keys:可复用的已保存私钥条目,使用 ref 在本文件内引用
  • sessions:要导入的会话列表

支持的会话类型:

  • ssh
  • local_terminal
  • telnet
  • serial

SSH 认证支持:

  • 直接密码:"auth": { "mode": "password", "password": "replace-me" }
  • 已保存密码:"auth": { "mode": "password", "password_ref": "prod-root-password" }
  • 已保存密钥:"auth": { "mode": "key", "key_ref": "ops-ed25519" }
  • 无认证:"auth": { "mode": "none" }

passwordpassword_ref 二选一;key 模式必须提供 key_refref 只在当前 JSON 文件内有效,导入后 NyaTerm 会生成真实的本地 ID。

注意

JSON 文件中的密码和私钥是明文。导入后请删除该文件,或至少按敏感文件方式保存。

导入后建议逐条检查:

  • 主机与端口
  • 用户名
  • 是否需要补充代理 / 跳板机 / OTP 绑定
  • 本地保存的密码或私钥是否已经匹配

主机密钥策略

NyaTerm 会为 SSH 主机维护已知主机记录,并提供三种主机密钥策略:

策略行为
提示首次连接未知主机时询问是否信任(默认)
接受自动接受并记录新的主机密钥
严格拒绝所有未知主机

已知主机记录保存在 ~/.nyaterm/nyaterm.redb 的本地存储中;旧版 known_hosts 会在首次启动时迁入。

如果你对安全要求较高,建议至少在生产环境中确认主机密钥来源,再决定是否接受。

什么时候该用 SSH,而不是其他会话类型?

优先使用 SSH 的典型场景是:

  • 你需要远程文件浏览器或 SFTP
  • 你需要 OTP、跳板机、代理、隧道
  • 你需要远程资源监控
  • 你希望把连接长期保存下来复用

如果你只是想在 NyaTerm 里开一个本地 shell,请改用 会话类型 里的 本地终端