Xshell 使用详解与故障排查全指南
1. Xshell 功能概述 支持 SSH1 / SSH2 / Telnet / RLogin / Serial 多种协议。
支持多会话标签、多标签分组、树形管理。
支持脚本、自动登录、快速命令、同步输入、端口转发。
与 Xftp 集成,支持图形化文件传输。
提供日志记录、追踪、主机 key 管理、快捷键映射等增强功能。
(参考官方手册 “About Xshell / Key Functions” 部分) NetSarang Website
2. 安装与授权 从 NetSarang 官网下载最新版安装包,推荐始终使用官方渠道以保证安全性。
安装过程通常按默认即可,但建议在安装后设置 Master Password(主密码),对保存的会话密码/凭证进行加密保护。
对于家庭 / 学校 /个人用途,NetSarang 有免费授权方案,可在许可协议中查看详细条款。
3. 会话建立流程(SSH 示例)步骤 启动 Xshell → 菜单 File → New 新建一个会话。
在弹出的“New Session Properties”窗口,填写:
Session Name:自定义名称
Host / IP:目标服务器地址
Port:默认 SSH 为 22
Protocol:选择 SSH
左侧选择 Connection → Authentication,设定认证方式(密码 / 公钥)
点击 OK 保存
在 Sessions 列表里双击刚建会话,第一次连接时会提示验证 Host Key,点击接受保存。
注意事项 若目标服务器使用非标准端口(非 22),必须修改 Port。
若首次连接提示主机 key,不要贸然选择“总是接受”,应与服务器管理员核对指纹是否一致。
若自动登录失败,可手动在 Authentication 页切换认证方式重试。
4. 认证方式详解密码认证最直接的方式,适合测试 / 小规模使用。但不推荐用于生产环境,因为可能明文保存或被拦截。
公钥认证 在 Xshell 的 Tools → User Key Manager 中生成或导入私钥。
在会话属性 Authentication 中选择该私钥。
在服务器端将对应公钥写入 ~/.ssh/authorized_keys,确保权限正确(~/.ssh 目录权限 700,authorized_keys 文件权限 600)。
AWS EC2 .pem 的处理 AWS 提供的 .pem 文件可通过 User Key Manager 导入(如果版本兼容)
若不能直接导入,可以使用 PuTTYgen / ssh-keygen 转换为 OpenSSH 格式后再导入。
在连接 EC2 时,用户名通常不是 root,要根据 AMI 不同使用 ec2-user、ubuntu 等。
若导入失败、提示“Failed to import user key”或“invalid format”,应检查密钥格式转换是否正确。
5. 编码与显示设置(解决乱码)原因远端主机编码、Xshell 终端编码和文件编码三者不一致,是乱码的主要根源。
解决方法 服务器端编码检查
执行 locale / echo $LANG,查看是否为 UTF-8 或其他编码格式。
Xshell 终端设置
会话属性 → Terminal → Encoding,推荐选择 Unicode (UTF-8)。
字体选择:使用支持中文的等宽字体,如 “Consolas + 中文扩展” 或者 “微软雅黑 等宽” 等。
强制环境变量
在登录脚本(如 ~/.bashrc)中加入:
export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8
保存后重新登录。
文件本身编码不一致
若日志文件本身是 GBK / ISO-8859 等编码,可使用 iconv 转换:
iconv -f GBK -t UTF-8 infile > outfile
若按上述方法操作后仍乱码,要同时检查三处设置是否一致,或临时切换编码试错。
6. 文件传输方式与故障处理ZMODEM(在终端中传输) 要求服务器端安装 lrzsz 包(提供 sz / rz 命令)。
在 Xshell 里右键菜单 / Smart Selection / File Transfer → Use ZMODEM 发送或接收。
若菜单无反应,可手动在终端执行 sz filename 或 rz 并切换客户端接收。
常见失败处理
提示找不到 sz:说明服务器未安装 lrzsz,需执行 sudo apt install lrzsz / yum install lrzsz。
终端转义或 CRLF 换行干扰:在终端属性中关闭自动 CRLF 转换。
大文件中断:尝试分割文件传输或使用其他方法。
Xftp / SFTP(GUI 传输) 在 Xshell 会话中点击 “SFTP” 按钮可打开 Xftp 界面,直接拖放文件。
若连接失败,要检查服务器 sshd_config 是否启用了 SFTP(Subsystem sftp /usr/lib/openssh/sftp-server)以及账号权限。
故障处理
权限问题:检查主目录 / 权限 / chroot 环境。
子系统缺失 / 路径配置错误:检查 sshd_config 中 sftp 子系统路径是否正确。
网络问题 / 防火墙阻塞:确认服务器防火墙未阻断 SFTP 端口。
7. 端口转发 / 隧道 / 代理Xshell 支持三种主要类型的端口转发:本地 (Local)、远程 (Remote)、动态 (Dynamic / SOCKS)。
本地转发(Local)用途:把远端服务映射到本地端口。
示例:将远端数据库 db.internal:3306 映射到本地 localhost:3336。
操作:在会话属性 → Tunneling → Add → Type = Local → Source / Destination 填写对应地址与端口 → 保存生效。
远程转发(Remote)用途:让远端服务器监听端口转发至本地或内网机器。
场景:将内网服务暴露给远端访问。
动态转发(SOCKS4/5)用途:建立本地 SOCKS 代理(如本地 1080 端口),让浏览器或其他程序通过 SSH 隧道访问外部网络。
注意:支持 TCP 转发,不支持 UDP;部分协议可能无法经过代理。
故障检查要点
检查本地绑定地址是否正确(如 127.0.0.1 或全局地址)
检查服务器防火墙 / 安全组是否允许对应端口
若隧道建立但访问失败,检查目标主机是否可达
动态代理在 Windows 端,需要在浏览器/系统里配置 SOCKS 代理地址
8. 串口(Serial)连接在网络设备、嵌入式板卡、交换机等设备上常有“串口控制台”需求。Xshell 支持 Serial 协议:
设置方式:
会话协议选择 Serial
设置串口号(如 COM3 / COM4)
波特率(常见 9600 / 115200)
数据位 / 停止位 / 校验 / 流控(None / RTS/CTS / XON/XOFF)
常见故障处理
没有响应 / 无显示:检查串口号是否正确,是否插好线缆,USB 转串口驱动是否正确安装
显示乱码 / 无法输入:检查波特率 / 数据位 /校验位/流控是否与设备一致
命令行干扰 / 损坏控制字符:尽量关闭本地回显、终端自动补全等干扰设置
9. 脚本与自动化操作脚本支持Xshell 提供脚本接口(VBScript / JScript / Perl 风格)以及 Script Recording(录制脚本)功能。官方手册有 Script Example 部分。 NetSarang Website
示例伪代码(VBScript 风格):
代码语言:javascript复制Set xsh = CreateObject("Xshell.Session") xsh.Open "C:\Path\To\Session.xsh" xsh.Screen.Synchronous = True xsh.Screen.WaitForString "login: " xsh.Screen.Send "username\r" xsh.Screen.WaitForString "Password: " xsh.Screen.Send "password\r"
快捷命令与批量执行 Quick Commands:把常用命令设为按钮,一键执行
Synchronized Input:在多个标签 / 会话中同步输入同一命令,用于对一系列服务器执行同样操作
提示:批量操作误操作风险高,建议先在单台测试,或给命令添加 --dry-run 判断逻辑
10. 常见故障排查指南下面是对各类常见错误消息及场景的排查思路与对应方法。
故障
可能原因
解决步骤
Connection refused
SSH 未启动 / 端口错误 / 防火墙阻断
ping 主机、telnet 端口、查看服务器 sshd 状态、配置防火墙规则
Connection timed out
路由 / 网络阻塞 / 安全组
使用 tracert/traceroute 检查路径、中间节点丢包,检查网络 ACL / 安全组
Host key verification failed / REMOTE HOST IDENTIFICATION HAS CHANGED
主机密钥变更 / 中间人攻击
确认是否更换服务器、删除本地 known_hosts 对应条目、重新接受 host key
Authentication failed
密码错误 / 用户名错误 / 公钥问题 / 权限错误
检查用户名 / 密码 / 私钥导入 / 公钥是否写入 authorized_keys、权限设置
ZMODEM 传输失败 / 不响应
服务器未安装 sz/rz / 终端设置冲突
安装 lrzsz 包、关闭终端自动转换设置、手动运行 sz / rz 测试
Xftp / SFTP 连接失败
子系统未启用 / 权限错误 / 防火墙
检查 sshd_config 中 sftp 子系统配置 / 权限 / 防火墙设置
中文乱码
编码不一致(服务器 / Xshell / 文件)
三处编码统一为 UTF-8、设置环境变量、或对文件做 iconv 转换
串口乱码 / 无响应
波特率 / 校验 / 串口号 / 驱动错误
检查配置是否与设备一致,更新串口驱动,确认线缆连接正常
在实际排查中,可以从最基础的网络连通性 → 服务状态 → 认证方式 → 配置文件依次排查。
11. 安全建议与运维规范 禁止在会话文件中保存明文密码,推荐开通 Master Password 功能加密保存
在生产环境尽量使用公钥认证、为私钥设置强口令、妥善备份与保护
记录操作日志、审计线路、开启连接 / 会话日志功能
对频繁使用的会话/命令做模板 / 脚本管理,减少手工输入错误
建议团队统一 Xshell 使用规范(例如密钥格式 / 脚本存储路径 / 转发规则)
12. 常用快捷键与效率技巧以下是 Xshell 常用的快捷键与建议(可在 Options → Key Mapping 自定义):
Ctrl + Tab / Shift + Ctrl + Tab:切换标签页
Shift + Alt + Enter:全屏 / 多窗格模式
Ctrl + Alt + ]:跳转到本地 Shell 命令行(当会话中断或输入问题时)
使用 Quick Commands、Compose Pane 把复杂命令保存为按钮
启用 Synchronized Input 对多个会话同时输入(谨慎使用)
完整快捷键列表可查官方手册 “Pre-defined Shortcut Key” 部分。 NetSarang Website