SSH客户端选型与实践
日常连服务器,表面上是「打开一个黑窗口」,背后其实是三层东西叠在一起:终端(Terminal) 负责显示与按键、SSH 客户端 负责加密会话与认证、Shell(bash/zsh 等)在远端执行命令。选型时先分清「缺哪一层」,再选 PuTTY、Windows Terminal + OpenSSH、MobaXterm 或 VS Code Remote 等组合。
速览
- 协议层 :OpenSSH 的
ssh是事实标准;图形工具多数内置或调用 OpenSSH/libssh。- Windows :Windows Terminal + OpenSSH (系统自带)适合日常;要 X11/SFTP 一体可看 MobaXterm ;企业采购常见 Xshell / SecureCRT。
- 跨平台 :Tabby 、WindTerm 、Termius 覆盖 Win/Mac/Linux/移动端。
- 写代码远程开发 :VS Code Remote - SSH、JetBrains Gateway 等走 IDE 集成。
- 长连与断线 :SSH 客户端管连接;tmux/screen 管远端会话------二者配合使用。
- 协议与安全细节见仓库内《SSH协议详解》(跳板机、ProxyJump、免密、sshd 配置)。
阅读导航
| 目标 | 建议章节 |
|---|---|
| 快速选型 | [2](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8)、[9](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8) |
| Windows 工具对比 | [4](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8) |
| 跨平台 / 终端 | [5](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8)、[6](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8) |
| 远程开发 | [7](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8) |
| 配置与组合 | [8](#目标 建议章节 快速选型 2、9 Windows 工具对比 4 跨平台 / 终端 5、6 远程开发 7 配置与组合 8) |
目录
一、概念
- [1. SSH 客户端解决什么问题](#1. SSH 客户端解决什么问题)
- [2. 先分清三层](#2. 先分清三层)
二、工具图谱
- [3. 工具分类总览](#3. 工具分类总览)
- [4. Windows 平台客户端](#4. Windows 平台客户端)
- [5. 跨平台与现代终端](#5. 跨平台与现代终端)
- [6. macOS 与 Linux](#6. macOS 与 Linux)
- [7. IDE 集成远程开发](#7. IDE 集成远程开发)
三、实践
- [8. OpenSSH 配置与常用组合](#8. OpenSSH 配置与常用组合)
- [9. 按场景选型](#9. 按场景选型)
- [10. 安全与合规注意](#10. 安全与合规注意)
- [11. 速查卡](#11. 速查卡)
1. SSH 客户端解决什么问题
SSH(Secure Shell)在 TCP 之上提供:
| 能力 | 说明 |
|---|---|
| 加密传输 | 防窃听、防篡改 |
| 身份认证 | 密码、公钥、证书等 |
| 端口转发 | 本地/远程/动态转发(隧道) |
| 子协议 | 交互式 Shell、SFTP 传文件、scp/rsync 等 |
SSH 客户端 负责发起连接、管理主机密钥、选择认证方式;sshd 在服务器端接受连接。客户端装在你本机(笔记本),与服务器操作系统无关。
2. 先分清三层
#mermaid-svg-BJux8YXwyX7uxBK6{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BJux8YXwyX7uxBK6 .error-icon{fill:#552222;}#mermaid-svg-BJux8YXwyX7uxBK6 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BJux8YXwyX7uxBK6 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BJux8YXwyX7uxBK6 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BJux8YXwyX7uxBK6 .marker.cross{stroke:#333333;}#mermaid-svg-BJux8YXwyX7uxBK6 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BJux8YXwyX7uxBK6 p{margin:0;}#mermaid-svg-BJux8YXwyX7uxBK6 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster-label text{fill:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster-label span{color:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster-label span p{background-color:transparent;}#mermaid-svg-BJux8YXwyX7uxBK6 .label text,#mermaid-svg-BJux8YXwyX7uxBK6 span{fill:#333;color:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 .node rect,#mermaid-svg-BJux8YXwyX7uxBK6 .node circle,#mermaid-svg-BJux8YXwyX7uxBK6 .node ellipse,#mermaid-svg-BJux8YXwyX7uxBK6 .node polygon,#mermaid-svg-BJux8YXwyX7uxBK6 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BJux8YXwyX7uxBK6 .rough-node .label text,#mermaid-svg-BJux8YXwyX7uxBK6 .node .label text,#mermaid-svg-BJux8YXwyX7uxBK6 .image-shape .label,#mermaid-svg-BJux8YXwyX7uxBK6 .icon-shape .label{text-anchor:middle;}#mermaid-svg-BJux8YXwyX7uxBK6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BJux8YXwyX7uxBK6 .rough-node .label,#mermaid-svg-BJux8YXwyX7uxBK6 .node .label,#mermaid-svg-BJux8YXwyX7uxBK6 .image-shape .label,#mermaid-svg-BJux8YXwyX7uxBK6 .icon-shape .label{text-align:center;}#mermaid-svg-BJux8YXwyX7uxBK6 .node.clickable{cursor:pointer;}#mermaid-svg-BJux8YXwyX7uxBK6 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BJux8YXwyX7uxBK6 .arrowheadPath{fill:#333333;}#mermaid-svg-BJux8YXwyX7uxBK6 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BJux8YXwyX7uxBK6 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BJux8YXwyX7uxBK6 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BJux8YXwyX7uxBK6 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BJux8YXwyX7uxBK6 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BJux8YXwyX7uxBK6 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster text{fill:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 .cluster span{color:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BJux8YXwyX7uxBK6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BJux8YXwyX7uxBK6 rect.text{fill:none;stroke-width:0;}#mermaid-svg-BJux8YXwyX7uxBK6 .icon-shape,#mermaid-svg-BJux8YXwyX7uxBK6 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BJux8YXwyX7uxBK6 .icon-shape p,#mermaid-svg-BJux8YXwyX7uxBK6 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BJux8YXwyX7uxBK6 .icon-shape .label rect,#mermaid-svg-BJux8YXwyX7uxBK6 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BJux8YXwyX7uxBK6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BJux8YXwyX7uxBK6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BJux8YXwyX7uxBK6 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 远端服务器
本机
22 或自定义端口
终端模拟器
显示/键盘/标签页
SSH 客户端
加密/认证/转发
sshd
Shell: bash/zsh
| 层次 | 例子 | 常见误解 |
|---|---|---|
| 终端 | Windows Terminal、iTerm2、WezTerm | 终端本身不加密,只显示字符 |
| SSH 客户端 | ssh、PuTTY、Xshell |
负责连上服务器 |
| Shell | bash、fish | 在远端解析 ls、cd |
| 组合方式 | 说明 |
|---|---|
| 一体式 GUI | PuTTY、Xshell、MobaXterm:终端 + SSH 在一个程序里 |
| 分离式 | Windows Terminal 显示 + 系统 ssh.exe 连接 |
| IDE 内置 | VS Code Remote 自带连接与文件树,底层仍多为 OpenSSH |
3. 工具分类总览
text
GUI 专用 SSH 客户端 PuTTY / Xshell / SecureCRT / MobaXterm / Bitvise
现代终端 + OpenSSH Windows Terminal / Tabby / WindTerm / WezTerm
跨平台同步 Termius
IDE 远程开发 VS Code Remote / JetBrains Gateway / Cursor Remote
纯命令行 ssh / scp / sftp(OpenSSH)
| 类型 | 适合谁 |
|---|---|
| 经典 GUI | 不熟命令行、要开箱即用 SFTP |
终端 + ssh |
工程师日常、可脚本化、配合 ~/.ssh/config |
| IDE Remote | 主要在远端改代码、调试 |
| 移动端 | 临时运维、告警处理(Termius 等) |
4. Windows 平台客户端
4.1 对比表
| 工具 | 许可 | 核心特点 | 典型场景 |
|---|---|---|---|
| PuTTY | 开源免费 | 极简、.ppk 密钥、无多标签(靠 PuTTYgen/Pageant) |
临时连一台机、老环境兼容 |
| Xshell | 商业(个人/Home 有免费版) | 多标签、会话管理、脚本、日志 | 国内企业运维、批量服务器 |
| SecureCRT | 商业 | 强会话管理、脚本、多协议、跨平台 | 电信/金融等长期采购 |
| MobaXterm | 免费版 + 专业版 | SSH + X11 + RDP + SFTP 一体;便携版 | 需要弹 Linux 图形、多协议混合 |
| Bitvise SSH Client | 免费(个人) | Windows 图形化 + SFTP 双面板 | 文件上传下载为主 |
| WindTerm | 开源 | 高性能渲染、多标签、会话同步 | PuTTY/Xshell 的现代替代 |
| Tabby | 开源 | 插件化、多平台、内置 SFTP | 想要跨平台统一终端 |
| Windows Terminal + OpenSSH | 系统/开源 | 微软官方终端 + ssh(Win10+ 可选功能) |
推荐默认组合 |
4.2 推荐组合(Windows)
text
日常开发/运维 → Windows Terminal + ssh + ~/.ssh/config
要图形界面 → MobaXterm(X11)或 VcXsrv + 任意 ssh
公司统一采购 → Xshell / SecureCRT(看 IT 许可证)
临时 U 盘 → PuTTY 绿色版 / MobaXterm Portable
OpenSSH on Windows :设置 → 应用 → 可选功能 → OpenSSH 客户端 ;或在 PowerShell 中 Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*' 安装。
5. 跨平台与现代终端
| 工具 | 平台 | 特点 |
|---|---|---|
| Tabby | Win / Mac / Linux | 开源;SSH/Telnet/串口;配置可同步;UI 现代 |
| WindTerm | Win / Mac / Linux | 开源;大量会话时滚动与搜索性能好 |
| Termius | 桌面 + iOS/Android | 云端同步主机列表(注意安全策略);适合移动应急 |
| Royal TSX 等 | 多平台 | 商业,集中管理 RDP/SSH/VNC(偏 IT 部门) |
这类工具通常 = 终端 UI + 内置 SSH 实现或调用系统 ssh ,优势是会话分组、标签、字体主题统一,而不是协议本身更强。
6. macOS 与 Linux
系统一般已带 OpenSSH 客户端 与基本终端。
| 组件 | macOS | Linux |
|---|---|---|
| SSH 命令 | 自带 ssh/scp/sftp |
包管理器安装 openssh-client |
| 终端 | Terminal.app、iTerm2 | GNOME Terminal、Konsole 等 |
| 现代终端 | iTerm2、WezTerm、Alacritty+ssh | WezTerm、Alacritty、Kitty |
bash
# 验证客户端
ssh -V
# 连测试(首次会提示 host key)
ssh user@host
macOS / Linux 上不必 再装 PuTTY;若需要图形 SFTP,可用 FileZilla (SFTP)、Cyberduck ,或 sftp 命令行。
7. IDE 集成远程开发
在远端直接编辑、调试、跑任务------适合「开发机就是 Linux 服务器」的场景。
| 工具 | 说明 |
|---|---|
| VS Code Remote - SSH | 扩展 ms-vscode-remote.remote-ssh;远端装 VS Code Server;支持端口转发、扩展在远端运行 |
| Cursor / Windsurf 等 | 多数兼容 Remote SSH 思路 |
| JetBrains Gateway | IDEA/PyCharm 等远程后端 |
| Dev Containers | 用 Docker 标准化环境(常与 SSH 跳板组合) |
对比 CLI ssh |
IDE Remote |
|---|---|
| 轻、脚本友好 | 重、但编辑/调试体验完整 |
| 适合运维命令 | 适合日常写代码 |
| 依赖本地熟练 vim 与否 | 本地 UI,远端执行 |
底层仍建议配置好 ~/.ssh/config(见下节),否则 IDE 里也要重复填主机与密钥路径。
8. OpenSSH 配置与常用组合
无论用哪款 GUI,掌握 OpenSSH 命令行与配置 能避免被工具锁死。
8.1 ~/.ssh/config 示例
sshconfig
Host lab
HostName 192.168.1.10
User deploy
Port 22
IdentityFile ~/.ssh/id_ed25519_lab
Host prod
HostName jump.example.com
User ops
ProxyJump bastion
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
| 指令 | 作用 |
|---|---|
Host / HostName |
别名与真实地址 |
User / Port |
默认用户与端口 |
IdentityFile |
指定私钥 |
ProxyJump |
经跳板机连接(见《SSH协议详解》) |
ServerAliveInterval |
防 NAT 空闲断连 |
连接:ssh lab(无需记 IP)。
8.2 文件传输
| 命令 | 用途 |
|---|---|
scp file lab:/path/ |
简单拷贝 |
sftp lab |
交互式 SFTP |
rsync -avz -e ssh ./dir lab:/path/ |
增量同步 |
8.3 与 tmux / screen 配合
| 组件 | 职责 |
|---|---|
| SSH 客户端 | 本机 ↔ 服务器 加密通道 |
| tmux / screen | 服务器上 会话保持(断网后任务仍在) |
bash
ssh lab
tmux new -s work
# 断线重连后
tmux attach -t work
SSH 断开 ≠ tmux 结束;换电脑登录后 tmux attach 即可恢复。
8.4 密钥与 agent
bash
ssh-keygen -t ed25519 -C "your@email"
ssh-copy-id lab # 或手动写入远端 ~/.ssh/authorized_keys
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows 可用 OpenSSH Authentication Agent 服务;PuTTY 用 Pageant 加载 .ppk。
9. 按场景选型
#mermaid-svg-p78Ma7OvRuLb83iG{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-p78Ma7OvRuLb83iG .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-p78Ma7OvRuLb83iG .error-icon{fill:#552222;}#mermaid-svg-p78Ma7OvRuLb83iG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-p78Ma7OvRuLb83iG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-p78Ma7OvRuLb83iG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-p78Ma7OvRuLb83iG .marker.cross{stroke:#333333;}#mermaid-svg-p78Ma7OvRuLb83iG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-p78Ma7OvRuLb83iG p{margin:0;}#mermaid-svg-p78Ma7OvRuLb83iG .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-p78Ma7OvRuLb83iG .cluster-label text{fill:#333;}#mermaid-svg-p78Ma7OvRuLb83iG .cluster-label span{color:#333;}#mermaid-svg-p78Ma7OvRuLb83iG .cluster-label span p{background-color:transparent;}#mermaid-svg-p78Ma7OvRuLb83iG .label text,#mermaid-svg-p78Ma7OvRuLb83iG span{fill:#333;color:#333;}#mermaid-svg-p78Ma7OvRuLb83iG .node rect,#mermaid-svg-p78Ma7OvRuLb83iG .node circle,#mermaid-svg-p78Ma7OvRuLb83iG .node ellipse,#mermaid-svg-p78Ma7OvRuLb83iG .node polygon,#mermaid-svg-p78Ma7OvRuLb83iG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-p78Ma7OvRuLb83iG .rough-node .label text,#mermaid-svg-p78Ma7OvRuLb83iG .node .label text,#mermaid-svg-p78Ma7OvRuLb83iG .image-shape .label,#mermaid-svg-p78Ma7OvRuLb83iG .icon-shape .label{text-anchor:middle;}#mermaid-svg-p78Ma7OvRuLb83iG .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-p78Ma7OvRuLb83iG .rough-node .label,#mermaid-svg-p78Ma7OvRuLb83iG .node .label,#mermaid-svg-p78Ma7OvRuLb83iG .image-shape .label,#mermaid-svg-p78Ma7OvRuLb83iG .icon-shape .label{text-align:center;}#mermaid-svg-p78Ma7OvRuLb83iG .node.clickable{cursor:pointer;}#mermaid-svg-p78Ma7OvRuLb83iG .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-p78Ma7OvRuLb83iG .arrowheadPath{fill:#333333;}#mermaid-svg-p78Ma7OvRuLb83iG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-p78Ma7OvRuLb83iG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-p78Ma7OvRuLb83iG .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-p78Ma7OvRuLb83iG .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-p78Ma7OvRuLb83iG .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-p78Ma7OvRuLb83iG .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-p78Ma7OvRuLb83iG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-p78Ma7OvRuLb83iG .cluster text{fill:#333;}#mermaid-svg-p78Ma7OvRuLb83iG .cluster span{color:#333;}#mermaid-svg-p78Ma7OvRuLb83iG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-p78Ma7OvRuLb83iG .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-p78Ma7OvRuLb83iG rect.text{fill:none;stroke-width:0;}#mermaid-svg-p78Ma7OvRuLb83iG .icon-shape,#mermaid-svg-p78Ma7OvRuLb83iG .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-p78Ma7OvRuLb83iG .icon-shape p,#mermaid-svg-p78Ma7OvRuLb83iG .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-p78Ma7OvRuLb83iG .icon-shape .label rect,#mermaid-svg-p78Ma7OvRuLb83iG .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-p78Ma7OvRuLb83iG .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-p78Ma7OvRuLb83iG .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-p78Ma7OvRuLb83iG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Windows
是
否
是
否
Mac/Linux
手机应急
主要场景?
主要系统?
要 IDE 写代码?
VS Code Remote SSH
要 X11 图形?
MobaXterm 或 VcXsrv+ssh
Windows Terminal + ssh
系统终端 + ssh + iTerm2/WezTerm 可选
Termius 等
| 场景 | 建议 |
|---|---|
| 个人 Windows 日常 | Windows Terminal + OpenSSH + config |
| 公司只给 Xshell 许可证 | Xshell;个人机可并行用 Tabby/WindTerm |
| 连 50+ 台服务器 | ~/.ssh/config 分组 + tmux;或 SecureCRT 会话文件夹 |
| 远程写 Java/Go/Python | VS Code Remote SSH |
| 传大文件/同步目录 | rsync / FileZilla(SFTP) / MobaXterm SFTP |
| 跳板机/内网 | ProxyJump;协议细节见《SSH协议详解》 |
| 串口调嵌入式板 | Tabby/MobaXterm 串口 功能(非 SSH,但常同一工具) |
10. 安全与合规注意
| 要点 | 说明 |
|---|---|
| 主机密钥 | 首次连接核对 fingerprint;勿随便删 known_hosts 后盲目连 |
| 私钥权限 | chmod 600;勿上传私钥到网盘/聊天工具 |
| 云同步 | Termius 等同步主机密码/密钥有泄露风险;企业可用自托管或禁用 |
| ForwardAgent | 仅在可信跳板启用 -A,避免密钥被中转滥用 |
| 商业软件 | Xshell/SecureCRT 注意许可证审计;个人学习可用免费替代 |
| 合规 | 金融/政企可能要求指定客户端与审计日志------服从 IT 规范 |
11. 速查卡
text
┌────────────────────────────────────────────────────────────┐
│ 三层: 终端(显示) + SSH客户端(加密) + Shell(远端命令) │
│ Win 默认: Windows Terminal + ssh + ~/.ssh/config │
│ 经典 GUI: PuTTY | Xshell | SecureCRT | MobaXterm │
│ 现代: Tabby | WindTerm | Termius │
│ 写代码: VS Code Remote SSH │
│ 传文件: scp | sftp | rsync -e ssh │
│ 长任务: ssh 上去后开 tmux,别只靠 SSH 不断线 │
│ 协议/跳板/免密: 见《SSH协议详解》 │
└────────────────────────────────────────────────────────────┘
一句话 :SSH 客户端选型 = 先分清终端 / SSH / Shell ,Windows 日常优先 Windows Terminal + OpenSSH ;要图形与 SFTP 看 MobaXterm ;写代码用 VS Code Remote ;连得上之后用 tmux 保住会话。