《大一项目实战:Xshell+SSH远程连接虚拟机全流程记录》

《大一项目实战:Xshell+SSH远程连接虚拟机全流程记录》

一、什么是SSH连接协议?

SSH的全称是Secure Shell,即安全外壳协议。它是一种加密的网络传输协议,主要用于在不安全的网络环境中安全地进行远程登录和命令执行。

通俗地说,SSH就像是你和服务器之间的一条“加密通道”。你在自己电脑上输入的命令,会通过这条通道加密后发送给服务器,服务器处理后再把结果加密传回来。即使这些数据在中途被别人截获,他们看到的也是一堆乱码,无法窃取你的操作内容或密码。

SSH还支持多种身份验证方式,比如最常见的密码登录,以及更安全的公钥登录。这保证了只有你本人或者你授权的用户才能访问服务器,大大提高了远程管理的安全性。

我们使用Xshell这款软件,就是通过SSH协议,用自己的笔记本电脑去远程控制机房里的Linux服务器,从而完成需要大量计算的数据分析任务。

二、Xshell连接虚拟机的完整步骤

  1. 下载并安装Xshell

    • 访问官网的免费教育版下载页面:家庭/学校免费 – NetSarang Website

    • 根据提示下载安装包,安装过程中一路点击“下一步”使用默认设置即可。

    • 安装完成后,桌面上会出现Xshell的图标,双击打开软件。

  2. 查询虚拟机的IP地址

    • 首先打开虚拟机,进入Linux系统的桌面,然后点击鼠标右键选择“打开终端”(或者按Ctrl+Alt+T快捷键)。

    • 在终端中输入命令:ifconfig

    • 如果系统提示“command not found”,说明没有安装网络配置工具。此时需要先执行安装命令:sudo apt install net-tools,输入自己的用户密码(注意输入时不会显示任何字符,直接输入完按回车即可)。

    • 安装完成后,再次输入ifconfig命令。

    • 在显示的信息中,找到类似“inet 192.168.xxx.xxx”的一行,后面的数字就是这台虚拟机当前的IP地址,例如我的IP是192.168.135.129。请把这个IP地址记下来,后面连接时会用到。

  3. 在虚拟机中安装SSH服务端

    • 为了让Xshell能够远程连接,虚拟机必须开启SSH服务。我们同时可以安装vim编辑器,方便后续编辑文件。

    • 在终端中依次执行以下三条命令:
      sudo apt install openssh-server
      sudo apt install ssh
      sudo apt install vim

    • 每一条命令执行后,系统会自动下载安装,等待出现“done”或类似提示即表示安装成功。

  4. 在Xshell中新建SSH连接

    • 打开已经安装好的Xshell软件,点击工具栏上的“新建”按钮(或者按Ctrl+N)。

    • 在弹出的窗口中:

      • “名称”一栏可以随意填写,比如填写“我的虚拟机”;

      • “主机”一栏必须填写刚才在虚拟机中查询到的IP地址,例如192.168.204.128;

      • 协议保持默认的SSH,端口号保持默认的22。

    • 填写完成后点击“确定”按钮。

  5. 首次连接的安全确认

    • 如果是第一次连接这台虚拟机,Xshell会弹出一个窗口,提示服务器的SSH密钥指纹尚未被记录,询问是否信任该主机。

    • 此时直接点击“接受并保存”或“下一步”即可。这一步相当于你确认这个服务器是安全的,以后连接不会再提示。

  6. 输入用户名和密码

    • 接着会弹出登录窗口,要求输入用户名和密码。

    • 用户名输入你虚拟机登录时使用的用户名(例如你的名字缩写或默认的ubuntu等),密码输入对应的登录密码(输入密码时同样不会显示任何字符)。

    • 输入正确后点击“确定”,即可成功连接。

  7. 连接成功后的界面

    • 连接成功后,Xshell主窗口会显示一个黑色的命令行界面,并且在顶部会显示你刚才设置的会话名称和服务器的IP地址。

    • 此时你可以在Xshell中输入任何Linux命令,这些命令实际上是在远程虚拟机上执行的,运算结果会通过网络传回显示在你的电脑屏幕上。

注意:在整个使用Xshell的过程中,必须保持虚拟机处于开机运行状态,不能关机或休眠,否则连接会断开。

三、过程中可能遇到的常见错误、原因及解决方法

错误1:输入ifconfig后提示“command not found”

  • 原因:虚拟机中没有安装网络配置工具net-tools。

  • 解决方法:执行命令 sudo apt install net-tools 安装该工具,然后再次输入ifconfig即可。

错误2:Xshell连接时提示“连接超时”或“无法连接”

  • 可能原因:
    a. 在Xshell中填写的IP地址与虚拟机实际的IP地址不一致;
    b. 虚拟机没有开机;
    c. 虚拟机网络未正常连接(例如网络适配器被禁用)。

  • 解决方法:
    先在虚拟机终端中再次输入ifconfig确认当前IP;确认虚拟机已开机并联网;也可以在虚拟机中使用ping命令测试网络,例如输入 ping www.baidu.com 看是否通网。

错误3:连接时提示“Connection refused”(连接被拒绝)

  • 原因:虚拟机上没有安装或没有启动SSH服务。

  • 解决方法:
    先在虚拟机终端执行 sudo systemctl start ssh 手动启动SSH服务,再执行 sudo systemctl enable ssh 设置开机自启。启动后再次尝试连接。

错误4:输入用户名和密码后提示“Access denied”或认证失败

  • 原因:用户名或密码输入错误。

  • 解决方法:注意Linux的用户名和密码是区分大小写的,仔细核对后重新输入。同时注意密码输入时不会显示任何字符,不要重复输入多次导致账号被锁定。

四、操作过程中的界面反馈描述(供截图参考)

在进行上述操作时,我观察到了以下屏幕反馈:

  • 在虚拟机终端中输入ifconfig后,终端返回了一段包含网络接口信息的文本,其中可以看到eth0或ens33等网络接口,后面跟着inet字段显示了一串IP地址,例如inet 192.168.204.128,这就是我后续要填写的地址。

  • 在执行sudo apt install openssh-server等安装命令时,终端显示了一系列进度条和下载速度信息,并提示“正在读取软件包列表...”、“正在安装...”等文字,最终出现“done”字样表示安装完成。

  • 在Xshell中新建会话时,界面上方有“名称”和“主机”两个输入框,我分别填写了“我的虚拟机”和查到的IP地址,端口默认为22,协议默认为SSH。

  • 首次点击连接后,Xshell弹出一个小窗口,内容大致为“服务器的SSH主机密钥不在本地数据库中,是否信任并保存该密钥?”,我点击了“接受并保存”。

  • 登录成功后,Xshell的主界面变成黑底白字的命令行窗口,顶部显示着“我的虚拟机”会话标签,窗口内出现了类似“Welcome to Ubuntu”的欢迎信息,并且光标在闪烁等待输入命令,这表示远程连接已经建立成功。

  • 在整个过程中,虚拟机一直处于开机状态,桌面壁纸和终端窗口始终可见,没有关机或休眠。

五、Xftp文件传输工具的使用简介

Xftp是Xshell官方推出的配套工具,专门用于在本地电脑和远程服务器之间传输文件。它的操作方式类似于我们常用的FTP软件,支持拖拽上传和下载。

使用步骤如下:

  1. 在同一个官网页面下载并安装Xftp(同样免费)。

  2. 打开Xftp,点击“新建”会话。

  3. 在会话设置中,主机地址填写与Xshell中相同的虚拟机IP地址,协议选择SFTP(基于SSH的加密文件传输),端口保持22,用户名和密码与虚拟机登录信息一致。

  4. 点击连接后,Xftp窗口会分为左右两栏:左侧显示本地电脑的文件夹,右侧显示远程虚拟机的文件夹。

  5. 传输文件非常简单:从左侧选中一个文件,直接拖拽到右侧,即可上传到虚拟机;反过来从右侧拖到左侧,则是下载到本地。

  6. 界面底部会显示传输进度条和速度,支持多个文件排队传输,可以充分利用网络带宽,节省时间。

通过Xftp,我们可以方便地把本地编写好的代码或数据文件上传到服务器,也可以把服务器上的运行结果下载回本地保存。

总结

通过本次实践,我全面了解了SSH协议的基本原理和安全作用,掌握了Xshell的安装、配置与连接虚拟机的完整流程,学会了查询IP地址、安装SSH服务等必备Linux操作,并且能够识别和解决常见的连接错误。同时我还学会了使用Xftp进行加密文件传输。这些技能为我今后在服务器上进行数据分析、代码运行和项目协作打下了非常实用的基础。