Ubuntu实现远程文件传输

目录

  • [安装 FileZilla](#安装 FileZilla)
  • [Ubuntu 配套设置](#Ubuntu 配套设置)
  • 实现文件传输

在Ubuntu系统中,实现远程文件传输的方法有多种,常见的包括使用SSH(Secure Shell)的SCP(Secure Copy Protocol)命令、SFTP(SSH File Transfer Protocol)、Rsync以及更高级的图形化工具如FTP客户端或云存储服务。这里我们使用FileZilla软件。

FileZilla 是一款流行的开源 FTP 客户端,用于文件传输协议(FTP)、安全文件传输协议(SFTP)以及扩展文件传输协议(FTPS)的文件上传和下载。FileZilla 是一个跨平台的工具,支持 Windows、Linux 和 macOS 操作系统。它具有用户友好的图形界面,并提供了强大的功能,广泛用于网站管理、服务器管理以及其他需要远程文件传输的任务。

安装 FileZilla

这里是安装链接:FileZilla中文网

这里我们选择客户端版的进行下载。

下载好以后打开压缩包,进行安装。




到这一步就安装完成了。

Ubuntu 配套设置

我们选择 SFTP(SSH File Transfer Protocol)进行文件传输,这就要求我们在Ubuntu中确保目标服务器已经安装并启用了 SSH 服务。SSH 提供了一种安全的加密连接方式,允许通过网络远程访问和管理服务器的文件。那么我接下来将介绍如何在Ubuntu配置SSH服务。

  1. 首先最好先给你的用户配置sudo权限

    首先先查看你的Ubuntu是否正确安装了sudo 命令

    powershell 复制代码
    sudo

    我这里目前已经安装

    配置sudo权限必须是root 用户或者是具备 sudo 权限的另一个用户。我这里选择root用户。

    powershell 复制代码
    su

    如果出现这个报错,很有可能因为root账户未启用:。默认情况下,Ubuntu禁用了root账户。如果你没有启用root账户,就会看到此错误。

    如果你确实需要启用root账户,可以使用以下命令

    bash 复制代码
    sudo passwd root

    给用户添加sudo权限

    powershell 复制代码
    sudo usermod -aG sudo 用户名
  2. 检查Ubuntu是否正确的安装了SSH(Ubuntu默认是不安装SSH的)

    shell 复制代码
    ps -e |grep ssh

    如果像这样什么都没有输出,就说明是没有安装,那就需要走第3步。如果已经安装,就请直接走第4步。

  3. 安装SSH

    在Ubuntu中,SSH(Secure Shell)是一种网络协议,主要用于在不安全的网络上安全地访问远程计算机或服务器。它通过加密通信来确保数据传输的安全性,防止数据被中途窃取或篡改。SSH常用于以下几种场景:远程登录、文件传输、远程执行命令、端口转发等。

    安装需要到具有sudo权限下的用户中安装。

    shell 复制代码
    su #进入root
    sudo apt-get update
    sudo apt-get install openssh-server 

    这个是之后运行完成的截图,我自己本身完成的到这步是没有ssh显示的,还是之后完成了步骤4之后查询才有的

    代码需要到具有sudo权限的账户下运行才可以,如果在没有sudo权限的用户中运行会报错。

  4. 启动ssh(我这里是WSL环境下的,所以是这语句,如果是其他环境,大家请自己搜索对应的语句)

    shell 复制代码
    sudo service ssh start

    我这里报错了,因为系统无法加载 SSH 主机密钥

    因此我首先检查密匙文件是否存在(我这里出现的原因是不存在),因此我就选择创建密匙

    shell 复制代码
    ls /etc/ssh/ssh_host_* #检查密匙是否存在
    #接下来的语句用来生成密匙
    sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
    sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

    大家如果还是不行,可以关闭Ubuntu再试一次,我重新开一次就成功了(具体原因我也不知道)

    截至目前,Ubuntu的SSH服务已经开启。

实现文件传输

使用 SSH 连接其他计算机需要知道该计算机的 IP 地址和 SSH 登录名。在这里,我们需要连接Ubuntu中的虚拟机,因此,在Ubuntu中可以使用以下命令查看当前计算机的 IP 地址:

bash 复制代码
ip addr

如图所示,我们查询到了两个IP地址,其中:

lo (Loopback interface) 是本地回环接口地址,通常是 127.0.0.1 和 10.255.255.254。这些地址是计算机与自己通信时使用的,通常不用于与其他设备进行通信。

eth0 (Ethernet interface)是当前计算机的网络接口地址,即用于与其他设备进行通信的 IP 地址。这里我选择IP地址 172.19.135.221 进行通信。

接下来我们打开FileZilla,创建与Ubuntu虚拟机的连接。点击左上角 文件 -> 站点管理, 创建新站点。

按照红色框中的信息填写,填写完成后选择连接,其中:

协议:选择SFTP.

主机:填写刚才我们查询的IP地址

端口:22(这个是SFTP的默认端口)

用户和密码:需要对应你的虚拟机

这里已经表示连接成功了,接下来,把你要从本地上传至Ubuntu的文件。从左边文件夹往右边文件夹拖动即可完成传输。

相关推荐
Dr_Zobot1 小时前
SLAM学习系列——ORB-SLAM3安装(Ubuntu20-ROS/Noetic)
学习·ubuntu·软件安装
Python少年班1 小时前
vim粘贴代码格式错乱 排版错乱 缩进错乱 解决方案
linux·编辑器·vim·排版错乱·缩进错乱·格式错乱·换行错乱
一眼青苔1 小时前
如何知道Ubuntu的端口是否被占用,被那个进程占用?如何终止进程
linux·运维·ubuntu
WXDcsdn2 小时前
华为VRF技术基于三层交换机的应用实例
服务器·网络·华为
编程绿豆侠2 小时前
Win11安装Ubuntu20.04简记
linux
程序员JerrySUN2 小时前
驱动开发硬核特训 · Day 25 (附加篇):从设备树到驱动——深入理解Linux时钟子系统的实战链路
linux·运维·驱动开发
程序员JerrySUN3 小时前
驱动开发硬核特训 · Day 24(上篇):走进Linux内核时钟子系统 —— 硬件基础全解析
linux·驱动开发·单片机
程序员JerrySUN3 小时前
驱动开发硬核特训 │ Regulator 子系统全解
linux·驱动开发·嵌入式硬件
佬乔3 小时前
JWT-验证
java·服务器·前端
破刺不会编程3 小时前
系统的环境变量
linux·运维·服务器·windows