CSDN:SSH协议详解 + Xshell连接Linux虚拟机完整实操

CSDN:SSH协议详解 + Xshell连接Linux虚拟机完整实操 一、什么是SSH连接协议定义SSHSecure Shell安全外壳协议是一种加密的远程登录协议运行在应用层默认端口22用于在不安全网络中安全访问远程服务器/虚拟机。核心优势加密传输对比明文传输的TelnetSSH对账号、密码、操作指令全程加密防止抓包窃取信息功能拓展除远程命令行登录外还支持SFTP/SCP文件传输、端口转发身份验证支持密码登录、密钥免密登录两种方式。工作流程客户端发起连接 → 服务器返回公钥 → 协商加密算法 → 身份校验密码/密钥→ 建立加密会话。二、Xshell连接Linux虚拟机完整操作步骤前置准备虚拟机CentOS/Ubuntu已开机虚拟机与宿主机网络互通NAT/桥接模式虚拟机已安装openssh-server服务。步骤1虚拟机配置与信息查询登录虚拟机终端查看网卡IPbashCentOS/RHELip addrUbuntuifconfig记录 inet 后的IPv4地址例192.168.137.100。2. 检查SSH服务状态bashsystemctl status sshd未启动 systemctl start sshd开机自启 systemctl enable sshd步骤2Xshell新建会话打开Xshell → 左上角「文件」→「新建」会话属性配置名称自定义如Linux虚拟机协议SSH主机填写虚拟机IPv4地址端口号默认22点击「连接」弹出身份验证窗口输入虚拟机用户名、密码勾选记住密码确定连接成功出现虚拟机命令行提示符。步骤3成功连接截图说明截图包含内容Xshell新建会话配置界面虚拟机 ip addr 查询IP终端截图SSH服务启动成功截图最终登录成功的Xshell操作界面。三、连接常见报错、原因与解决方案⚠️报错现象 根本原因 解决办法Could not connect to ‘xxx’ (port 22): Connection failed 1. 虚拟机IP输错 2. 网络不通 3. 虚拟机sshd未启动 4. 防火墙拦截22端口 1. 重新执行 ip addr 核对IP 2. 宿主机ping虚拟机IP不通则切换虚拟机网络模式为NAT 3. systemctl start sshd 启动服务 4. 防火墙开放22端口Access denied 用户名/密码错误或该用户禁止SSH登录 1. 核对账号密码 2. root禁止远程登录修改 /etc/ssh/sshd_config 设置 PermitRootLogin yes 重启sshdConnection refused SSH服务未监听22端口或端口被修改 1. 查看sshd配置 /etc/ssh/sshd_config 确认Port值 2. 使用对应端口重新连接Host key verification failed 虚拟机重装/IP复用本地主机密钥缓存冲突 Xshell工具 → 清除对应会话主机密钥缓存重新连接连接超时 宿主机与虚拟机不在同一网段路由器拦截 虚拟机切换桥接模式关闭宿主机第三方防火墙/杀毒软件四、Xftp文件传输操作教程Xftp配套Xshell使用基于SSH的SFTP协议加密传输文件无需额外开启FTP端口。方式1Xshell一键唤起XftpXshell成功登录虚拟机后顶部工具栏点击「Xftp图标」自动建立SFTP会话界面分左右窗口左侧为宿主机本地文件右侧为虚拟机远程目录。方式2手动新建Xftp会话打开Xftp → 新建会话协议选择 SFTP(默认端口22) 填写虚拟机IP、用户名密码连接后拖拽文件双向传输。常用操作本地传虚拟机左侧选中文件拖拽至右侧远程文件夹虚拟机下载到本地右侧文件拖拽至左侧本地目录权限不足报错切换至虚拟机 /tmp 临时目录传输或使用sudo提升权限。