
前言在上篇文章中我们成功在虚拟机中安装了Linux操作系统。但每次操作都要在虚拟机界面中进行不仅切换不便也无法复制粘贴命令。有没有更高效的方式答案就是通过SSH协议远程连接虚拟机在Windows本地使用Xshell终端工具直接操作Linux。本文将带你从零开始理解SSH协议的原理并通过Xshell和Xftp实现远程连接与文件传输。一、什么是SSH连接协议1.1 SSH的起源SSH是Secure Shell的缩写即安全外壳协议是一种基于TCP的加密网络传输协议。它由芬兰赫尔辛基大学的Tatu Ylönen于1995年开发——当时该校发生了密码嗅探攻击事件促使他开发了SSH协议的首个版本用以解决远程登录和数据明文传输的安全漏洞。在没有SSH协议之前Telnet、FTP等通信协议在网络上都是明文传输口令和数据攻击者很容易截获传输的数据进行“中间人攻击”。SSH的出现彻底改变了这一局面。1.2 SSH的核心功能SSH主要用于远程登录、远程命令执行、文件加密传输、端口转发等位于OSI网络模型的应用层。它通过加密技术让数据在不安全网络如公网传输时避免被窃听和篡改完全取代了Telnet、rlogin等不安全的远程登录协议。1.3 SSH协议架构与工作原理SSH协议采用客户端-服务器架构服务器默认监听22号TCP端口。其协议采用分层架构主要由三个部分组成传输层负责密钥交换、服务器认证、加密和完整性保护。在TCP/IP连接建立后首先进行协商双方支持的加密算法并生成会话密钥。用户认证层处理客户端身份验证支持密码认证、公钥认证、键盘交互认证等多种机制。连接层认证成功后负责管理多个独立的逻辑通道用于远程命令执行、shell访问、端口转发等。SSH连接建立过程可以分为四个阶段TCP连接建立客户端发起与服务器22端口的TCP连接协议版本交换双方确定使用的SSH版本如SSH-2.0密钥交换与加密参数协商使用Diffie-Hellman算法安全生成共享密钥用户认证客户端向服务器证明自己的身份简单理解SSH就像一条加密的“安全隧道”让您可以在Windows电脑上安全地“遥控”Linux虚拟机所有传输的数据都经过加密第三者无法窃听。二、Xshell连接虚拟机的步骤Xshell是一款功能强大的SSH客户端软件支持多标签会话、密钥认证、SFTP文件传输等高级特性。2.1 环境准备第一步下载并安装Xshell前往Xshell官方网站https://www.xshell.com/下载安装包根据操作系统版本完成安装。第二步启动虚拟机并获取IP地址开启Linux虚拟机打开终端运行以下命令查看IP地址baship addr show或使用ifconfig找到主网卡如ens33或eth0对应的inet字段记录IP地址如192.168.x.x排除127.0.0.1和169.254.x.x等无效地址。第三步确保SSH服务已开启在Linux虚拟机终端中检查SSH服务状态bash检查SSH服务状态sudo systemctl status sshd若未启动执行启动命令sudo systemctl start sshd设置开机自启sudo systemctl enable sshd如果系统未安装SSH服务需先安装bashUbuntu/Debian系统sudo apt-get install openssh-serverCentOS/RHEL系统sudo yum install openssh-server2.2 Xshell新建会话第四步创建新会话打开Xshell点击顶部菜单栏的“文件”→“新建”或按快捷键CtrlN。在弹出的“新建会话”窗口中填写以下信息配置项 填写内容名称 自定义如“MyLinuxVM”便于识别协议 选择“SSH”主机 输入虚拟机的IP地址端口号 默认22若未修改保持默认点击“确定”保存会话配置。第五步连接虚拟机在Xshell主界面中找到刚刚创建的会话双击进行连接。首次连接会弹出“SSH安全警告”提示确认服务器的指纹信息点击“接受并保存”。输入Linux虚拟机的用户名如root或普通用户点击“确定”。输入对应的密码点击“确定”。第六步成功连接若配置和输入信息无误Xshell将显示Linux虚拟机的终端界面。此时便可像在本地终端一样执行各种Linux命令了三、连接过程中可能出现的错误及解决方案错误1连接超时 / 网络不可达现象Xshell提示“Connection timed out”或“网络不可达”。原因分析虚拟机IP地址填写错误虚拟机与主机网络不通防火墙拦截、虚拟机未联网虚拟机网络模式配置不当解决方案在虚拟机中再次确认IP地址ip addr show确保与Xshell中填写的一致在Windows主机上用ping 虚拟机IP测试网络连通性检查虚拟机网络模式桥接模式需与宿主机同网段NAT模式需检查DHCP分配范围关闭虚拟机防火墙或开放22端口bashCentOS/RHELsudo systemctl stop firewalldUbuntu/Debiansudo ufw allow 22检查Windows防火墙允许VMware相关进程的网络访问错误2Connection refused连接被拒绝现象Xshell提示“Connection refused”。原因分析SSH服务未启动端口号填写错误非22端口防火墙拦截了22端口解决方案在虚拟机中检查SSH服务状态sudo systemctl status sshd若未启动执行sudo systemctl start sshd检查端口监听情况netstat -tunlp | grep 22确认22端口被SSH服务占用检查防火墙是否开放了22端口错误3Permission denied权限被拒绝现象Xshell提示“Permission denied”。原因分析用户名或密码输入错误SSH服务禁用了密码认证配置文件/etc/ssh/sshd_config中PasswordAuthentication no解决方案仔细核对用户名和密码注意大小写检查SSH配置文件bashsudo vi /etc/ssh/sshd_config确保 PasswordAuthentication yes修改后重启服务sudo systemctl restart sshd若Root用户无法登录检查PermitRootLogin是否设置为yes错误4Socket error Event: 32 Error: 10053现象连接后突然断开提示“Socket error Event: 32 Error: 10053”。原因分析IP地址发生变化导致连接中断网络不稳定或超时设置过短解决方案在Xshell会话设置中勾选“重新连接”将时间间隔从30秒改为60秒重新获取虚拟机IP地址更新Xshell会话中的主机IP重启SSH服务后重新连接错误5NAT模式下22端口连接失败现象NAT模式下Xshell始终无法连接提示“connection failed”。原因分析手动设置的IP地址与VMware虚拟网络编辑器中的子网IP不在同一网段解决方案打开VMware“编辑”→“虚拟网络编辑器”查看NAT模式的子网IP如192.168.10.0将虚拟机IP地址修改为同一网段如192.168.10.x在Xshell中更新为正确的IP地址后重新连接错误6虚拟机获取到169.254.x.x异常IP现象虚拟机IP地址为169.254.x.x无法正常连接。原因分析Windows的VMnet8虚拟网卡获取到了异常IPDHCP服务未正常工作解决方案检查Windows防火墙允许“VMware DHCP Service”进程的网络访问在VMware虚拟网络编辑器中还原默认设置重新配置网络若同时安装了VirtualBox先卸载后重启VMware 排查思路小结遇到连接问题时可按以下顺序逐一排查——①能否ping通 → ②防火墙是否关闭/开放22端口 → ③SSH服务是否启动 → ④IP地址和端口是否正确。四、Xftp文件传输4.1 Xftp是什么Xftp是一个基于Windows平台的SFTP/FTP文件传输软件用户可以通过它在Windows和Linux系统之间安全地传输文件。它基于SSH协议的SFTPSSH File Transfer Protocol进行传输所有网络流量都经过加密。4.2 Xftp连接步骤第一步下载安装Xftp前往Xftp官方网站下载安装包完成安装。第二步新建会话打开Xftp点击“文件”→“新建”或按CtrlN。在“会话属性”窗口中填写配置项 填写内容名称 自定义如“MyLinuxVM”协议 选择“SFTP”默认端口22主机 输入虚拟机的IP地址用户名 输入Linux用户名密码 输入对应用户的密码点击“连接”。第三步传输文件连接成功后Xftp界面分为左右两个窗口左侧Windows本地文件路径右侧Linux远程文件路径上传文件Windows → Linux选中左侧本地文件拖拽到右侧Linux窗口下载文件Linux → Windows选中右侧远程文件拖拽到左侧Windows窗口注意确保Linux服务器已开启SSH服务否则Xftp无法连接。Xftp支持断点续传传输大文件时可在传输日志中查看进度。五、过程中的结果截图示例说明说明以下是关键步骤的截图示例实际安装时请根据你的操作自行截图替换。图1虚拟机中查看IP地址在Linux终端执行ip addr show命令显示IP地址的截图。图2检查SSH服务状态执行sudo systemctl status sshd显示服务运行状态的截图。图3Xshell新建会话Xshell中“文件”→“新建”会话配置窗口的截图含名称、协议、主机、端口。图4SSH安全警告首次连接时弹出的“SSH安全警告”对话框截图。图5Xshell成功连接成功连接后显示Linux终端界面的截图。图6Xftp新建会话Xftp中新建会话配置窗口的截图。图7Xftp文件传输Xftp双窗口界面中拖拽文件传输的截图。