方法一:使用 MobaXterm / Xshell (自带 SFTP 侧边栏)

如果你已经在用这些工具远程连接 Linux,它们通常自带文件传输功能。

  1. 在 MobaXterm 左侧面板点击 SFTP 选项卡。

    2. 找到 /home/你的用户名 路径。

     3. 点击上方的 Upload 按钮,或者直接从 Windows 文件夹里把文件拖进这个侧边栏。


方法二:使用 SCP 命令(无需安装额外软件)

如果你习惯用命令行(PowerShell 或 CMD),可以直接传输。

1.确定“用户名” 

在你的 Ubuntu 终端输入:

whoami
  • 结果:终端会直接弹回你的登录名

2. 确定“服务器 IP”

在你的 Ubuntu 终端输入:

hostname -I
  • 结果:你会看到一串数字(如 192.168.XXX.XXX)。通常第一个就是你的内网 IP。

3.使用 SCP 命令

Windows 的项目根目录下打开 PowerShell,输入:

# 语法:scp -r 本地目录 远程用户名@IP:远程路径
scp -r ./* 用户名@你的服务器IP:~/my_ai_bot

我的文件传入根目录下的my_ai_bot文件夹里。

如果执行 ssh 时提示 Connection refused,那说明你的 Ubuntu 还没开启 SSH 服务!!!

4.开启SSH服务

第一步:在 Ubuntu 上安装并启动 SSH

请切换回你的 Ubuntu 终端,执行以下命令:

# 1. 更新软件库
sudo apt-get update

# 2. 安装 OpenSSH 服务端
sudo apt-get install -y openssh-server

# 3. 启动服务并设置开机自启
sudo systemctl start ssh
sudo systemctl enable ssh

# 4. 确认服务状态
sudo systemctl status ssh

!!!!!!!!如果看到绿色字体的 active (running),说明门已经开了。

类似这样:

第二步:放行防火墙(如果已开启)

有时候 Ubuntu 默认开启了防火墙,我们需要手动给 22 端口“揭贴”:

sudo ufw allow ssh
# 或者直接指定端口
sudo ufw allow 22/tcp

第三步:再次从 Windows 尝试传输

现在回到你的 Windows PowerShell,重新执行刚才的命令。

注意: 第一次连接时,它会问你 Are you sure you want to continue connecting (yes/no)?,请手动输入 yes 并回车,然后输入你的 Ubuntu 登录密码。

验证文件传输是否成功

1.在 Ubuntu 终端输入(注意要带 -a 参数才能看到隐藏文件):

ls -la ~/my_ai_bot

2.对比查看文件是否完整。我有个文件没有传过去(.env)。

针对性解决:

情况 A:如果没有 .env 文件(手动补票)

既然其他文件都在,可以直接在 Ubuntu 里手动创建一个:

nano ~/my_ai_bot/.env

然后把 Windows 里的 .env 内容直接粘贴进去。 (按 Ctrl+O 保存,Enter 确认,Ctrl+X 退出)

情况 B:如果有 .env 文件但读不到(给权限) (有时会存在没有权限)

sudo chmod 644 ~/my_ai_bot/.env

其中,

  • chmod:更改文件权限的命令。

  • 644:设置的权限数字,含义为:

    • 6(所有者):读 + 写(4+2)

    • 4(用户组):只读

    • 4(其他用户):只读

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐