欢迎光临
我们一直在努力

【AI科研学习07】如何远程连接 Linux 平台:从 SSH 到 PyCharm 远程开发

如何远程连接 Linux 平台:从 SSH 到 PyCharm 远程开发

在进行 AI 科研、论文复现和深度学习项目开发时,我们经常需要使用 Linux 服务器。

尤其是训练深度学习模型时,本地电脑可能存在:

  • GPU 性能不足
  • 显存不够
  • 训练时间太长
  • 环境配置困难
  • 数据集存储空间不足

因此,很多 AI 项目都会选择:

Windows 本地电脑 + Linux 远程服务器

的开发模式。

例如:

Windows 电脑

远程连接

Linux 服务器

Python 环境

PyTorch

GPU

训练模型

刚开始接触 Linux 服务器时,最常见的问题就是:

Linux 服务器到底应该怎么连接?

本文就从最基础的 SSH 开始,介绍如何从 Windows 电脑远程连接 Linux 平台,并进一步介绍如何使用 PyCharm 进行远程开发。


一、什么是 Linux 远程连接?

简单来说:

远程连接就是在自己的电脑上操作另一台计算机。

例如我自己的电脑是:

Windows 11

实验室服务器是:

Ubuntu Linux

我不需要坐在服务器旁边,而是可以通过网络连接服务器。

连接成功之后,就可以在本地电脑上:

查看服务器文件

运行 Linux 命令

创建 Python 环境

安装依赖

运行 Python 程序

使用服务器 GPU

训练 AI 模型

所以对于 AI 学习和科研来说:

远程 Linux 是非常重要的一项基础技能。


二、为什么 AI 科研经常使用 Linux 服务器?

如果只是学习 Python,Windows 电脑完全可以满足需求。

但是进入深度学习和 AI 科研之后,Linux 的使用频率会明显增加。

例如:

PyTorch
CUDA
cuDNN
TensorFlow
MMDetection
MMSegmentation
Linux Shell
Docker
Git

很多 AI 项目都优先在 Linux 环境下开发和测试。

同时实验室服务器一般拥有:

CPU
大容量内存
GPU
大容量硬盘

例如一台服务器可能有:

GPU:RTX 4090 × 4
CPU:32核心
内存:128GB
硬盘:数TB

对于深度学习训练来说,这种服务器的计算能力远远超过普通笔记本电脑。

因此比较常见的工作方式就是:

自己的电脑

│ 网络

Linux服务器

├── Python
├── PyTorch
├── CUDA
├── 数据集
└── GPU


三、远程连接 Linux 需要哪些信息?

在连接服务器之前,一般需要向管理员获取以下信息:

服务器 IP 地址
用户名
密码
SSH 端口

例如:

IP:
192.168.1.100

用户名:
hjj_code

SSH端口:
22

如果管理员没有修改 SSH 默认端口,一般就是:

22

但有些服务器为了安全会修改成其他端口。

例如:

2222

所以连接之前最好确认清楚。


四、SSH 是什么?

SSH 是:

Secure Shell

它是一种用于远程登录服务器的网络协议。

可以简单理解为:

SSH
=
通过网络远程进入 Linux 服务器

例如:

Windows

SSH

Ubuntu Server

SSH 不仅可以登录服务器,还可以进行:

  • 远程执行命令
  • 文件传输
  • 端口转发
  • Git 操作
  • 远程开发

因此:

SSH 是学习 Linux 远程开发时非常重要的基础工具。


五、Windows 如何连接 Linux?

Windows 上有很多方式可以连接 Linux。

常见的方法包括:

方法一:Windows Terminal / PowerShell
方法二:CMD
方法三:Xshell
方法四:FinalShell
方法五:VS Code Remote SSH
方法六:PyCharm Remote Development

对于刚开始学习的人,我建议先学会:

SSH 命令行连接

然后再使用:

PyCharm / VS Code 进行图形化远程开发。

这样能够真正理解 Linux 服务器的工作方式。


六、方法一:使用 Windows Terminal / PowerShell

现在 Windows 自带的 PowerShell 或 Windows Terminal 通常已经可以直接使用 SSH。

打开:

PowerShell

输入:

ssh 用户名@服务器IP

例如:

ssh hjj_code@192.168.1.100

如果 SSH 使用其他端口,例如:

2222

那么:

ssh -p 2222 hjj_code@192.168.1.100

然后输入密码。

如果连接成功,就会进入 Linux 终端。


七、第一次连接时出现安全提示怎么办?

第一次连接服务器时,可能会看到类似:

The authenticity of host '…' can't be established.
Are you sure you want to continue connecting?

这是 SSH 第一次连接服务器时的正常提示。

如果确认:

IP 地址确实是自己的服务器。

那么可以输入:

yes

之后 SSH 会记录服务器的指纹。

以后再次连接时通常不会再出现这个提示。


八、连接成功后是什么样?

连接成功之后,终端提示符可能类似:

hjj_code@ubuntu:~$

这时候你已经进入 Linux 服务器。

可以输入:

pwd

查看当前目录。

例如:

/home/hjj_code

再输入:

ls

查看当前目录中的文件。

例如:

code
dataset
conda

这说明:

现在执行的 Linux 命令,实际上是在远程服务器上执行。


九、如何判断自己是不是已经连接到服务器?

刚开始使用远程服务器时,非常容易出现一个问题:

我现在到底是在自己的电脑上,还是服务器上?

可以使用:

hostname

查看服务器主机名。

也可以:

whoami

查看当前用户名。

还可以:

pwd

查看当前路径。

例如:

whoami

返回:

hjj_code

说明当前 Linux 用户是:

hjj_code


十、进入 Linux 后最常用的几个命令

远程连接 Linux 之后,不需要一开始学习几百个命令。

先掌握最常用的一批即可。

1. pwd

查看当前路径:

pwd


2. ls

查看文件:

ls

详细查看:

ls -l


3. cd

进入目录:

cd project

返回上一级:

cd ..

返回用户主目录:

cd ~


4. mkdir

创建目录:

mkdir test


5. rm

删除文件:

rm test.txt

删除目录时需要特别小心。

例如:

rm -rf test

这个命令具有较强的删除能力。

刚开始学习 Linux 时,不要随便执行 rm -rf。


十一、如何退出 Linux 服务器?

如果工作完成,可以输入:

exit

或者:

Ctrl + D

就会退出 SSH。

例如:

hjj_code@ubuntu:~$ exit
logout

然后重新回到自己的 Windows 电脑。


十二、SSH 连接的本质

到这里可以把 SSH 理解成:

Windows电脑

│ ssh

服务器 IP


Linux


用户账号


Linux终端

所以:

ssh hjj_code@192.168.1.100

本质上就是:

使用 hjj_code 这个用户,通过 SSH 连接 IP 为 192.168.1.100 的 Linux 服务器。


十三、如何把本地文件传到 Linux?

论文复现的时候,除了连接服务器,我们还经常需要:

本地代码

上传服务器

或者:

服务器实验结果

下载到本地

这就涉及文件传输。

常见方式包括:

SCP
SFTP
FinalShell
Xftp
PyCharm
VS Code

例如使用 SCP:

scp test.py hjj_code@192.168.1.100:/home/hjj_code/

意思是:

把本地的 test.py 上传到服务器的 /home/hjj_code/。


十四、为什么 AI 科研中经常使用 PyCharm 远程连接?

如果只使用 SSH,那么所有操作基本都是:

终端
+
命令

对于开发大型 Python 项目来说,会比较麻烦。

例如一个 AI 项目可能有:

project/
├── models/
├── datasets/
├── configs/
├── utils/
├── train.py
├── test.py
└── requirements.txt

如果只使用终端修改代码:

vim train.py

对于刚开始学习的人来说并不方便。

因此可以使用:

PyCharm + Linux 服务器

进行远程开发。


十五、PyCharm 远程开发是什么?

简单来说:

本地电脑

├── PyCharm

└── 编辑代码


Linux服务器

├── Python环境
├── PyTorch
├── CUDA
├── 数据集
└── GPU

也就是说:

代码编辑可以在自己的电脑上进行,而程序实际运行在服务器上。

这对于 AI 项目非常方便。


十六、PyCharm 远程开发的基本流程

一般可以理解成:

第一步
准备 Linux 服务器

第二步
确认 SSH 可以正常连接

第三步
PyCharm 配置远程服务器

第四步
选择服务器上的 Python 环境

第五步
配置项目路径

第六步
同步代码

第七步
运行 Python 程序

第八步
程序在 Linux 服务器运行


十七、为什么一定要先学 SSH?

虽然 PyCharm 可以帮助我们连接服务器,但我认为:

不要跳过 SSH。

因为当 PyCharm 出现问题时,你至少需要知道:

服务器是不是正常?
SSH是不是正常?
Python环境是不是正常?
GPU是不是正常?
路径是不是正确?

例如 PyCharm 无法连接时,可以先在终端测试:

ssh hjj_code@服务器IP

如果 SSH 都连接不上,那么问题大概率不是 PyCharm 本身。


十八、AI 论文复现中的典型远程开发流程

以一个深度学习论文项目为例。

首先:

Windows电脑

通过:

ssh 用户名@服务器IP

连接:

Linux服务器

然后进入项目:

cd /data/hjj_code/project

激活 Conda 环境:

conda activate vittt

检查 Python:

python –version

检查 PyTorch:

python -c "import torch; print(torch.__version__)"

检查 GPU:

nvidia-smi

确认环境没问题之后,再运行:

python train.py

整个流程就是:

Windows

SSH

Linux

Conda

Python

PyTorch

CUDA

GPU

论文代码

这就是我目前进行 AI 论文复现时非常典型的一套工作流程。


十九、远程连接后一定要注意 GPU 使用情况

进入服务器之后,可以使用:

nvidia-smi

查看 GPU。

例如:

GPU 0
GPU 1
GPU 2
GPU 3

如果服务器有多张 GPU,还需要注意:

不要随意占用别人正在使用的 GPU。

可以先查看:

nvidia-smi

看看:

GPU
显存使用情况
运行进程

然后再选择合适的 GPU。

例如:

CUDA_VISIBLE_DEVICES=1 python train.py

表示让程序使用指定的 GPU。

如果使用多张 GPU,也可以通过:

CUDA_VISIBLE_DEVICES=1,3

指定 GPU 1 和 GPU 3。


二十、远程连接最大的优势:本地电脑不需要一直运行程序

假设模型训练需要:

10小时

如果直接在本地电脑运行:

电脑必须一直开着

但是服务器远程运行就不一样。

可以:

Windows

SSH

Linux服务器

启动训练

退出SSH

只要训练进程没有因为退出 SSH 而结束,服务器就可以继续运行。

不过直接运行:

python train.py

然后退出 SSH,程序通常可能会随着会话结束。

因此以后可以进一步学习:

tmux
screen
nohup

例如:

nohup python train.py > train.log 2>&1 &

让训练在后台运行。


二十一、为什么推荐学习 tmux?

对于 AI 科研来说,我非常推荐后面学习:

tmux

它可以让你:

SSH连接服务器

打开tmux

运行训练

退出SSH

服务器继续训练

第二天重新连接

重新进入tmux

查看训练结果

这对于需要长时间训练的模型非常实用。


二十二、远程连接常见问题

问题一:Connection refused

例如:

ssh: connect to host … port 22: Connection refused

可能原因:

SSH服务没有启动
端口错误
服务器防火墙
SSH端口不是22


问题二:Connection timed out

可能是:

网络不通
IP错误
服务器无法访问
端口被防火墙拦截


问题三:Permission denied

例如:

Permission denied

可能是:

用户名错误
密码错误
SSH密钥错误
用户没有权限


问题四:磁盘空间不足

运行 AI 项目时可能出现:

No space left on device

可以检查:

df -h

再查看具体目录:

du -sh *

这对于下载大型数据集和安装 Conda 环境尤其重要。


二十三、远程 Linux 学习路线

如果刚开始接触 Linux,我不建议一下子学习大量命令。

可以按照这个路线:

第一阶段:会连接

掌握:

SSH
IP
端口
用户名
密码

能够:

ssh user@server


第二阶段:会基本操作

掌握:

pwd
ls
cd
mkdir
cp
mv
rm


第三阶段:会管理 Python 环境

学习:

Conda
pip
Python
虚拟环境

例如:

conda create -n test python=3.10
conda activate test


第四阶段:会运行 AI 项目

掌握:

Git
Python
PyTorch
CUDA
nvidia-smi


第五阶段:学会远程开发

掌握:

PyCharm Remote
VS Code Remote SSH
SFTP


第六阶段:学会服务器后台运行

学习:

tmux
screen
nohup


二十四、我目前的 AI 科研远程工作流

经过前面的学习,我逐渐形成了这样一套工作流程:

Windows电脑

│ SSH

Linux服务器

┌─────────┴─────────┐
↓ ↓
项目代码 数据集


Conda环境


PyTorch


CUDA


GPU


论文复现


实验结果

而 PyCharm 可以作为中间的开发工具:

PyCharm
↙ ↘
本地代码 Linux服务器

Python

PyTorch

GPU

这种方式非常适合:

  • AI 论文复现
  • 深度学习训练
  • PyTorch 项目
  • 计算机视觉项目
  • 大模型项目
  • 科研代码开发

二十五、总结

对于刚开始进行 AI 科研的同学来说,Linux 远程连接可能看起来比较复杂。

但实际上最核心的东西只有几个:

Linux
SSH
IP
端口
用户名
密码

最基本的一条命令就是:

ssh 用户名@服务器IP

连接成功之后,再逐渐学习:

Linux命令

Conda

Git

Python

PyTorch

CUDA

GPU

PyCharm远程开发

tmux

最终形成:

本地电脑负责开发,Linux服务器负责计算。

对于 AI 科研来说,这是一套非常实用的工作模式。

以前可能觉得:

“Linux 服务器离自己很远。”

但真正开始做论文复现之后会发现:

远程连接 Linux,其实就是进入 AI 科研工程环境的第一步。

从学会:

ssh user@server

赞(0)
未经允许不得转载:171主机测评 » 【AI科研学习07】如何远程连接 Linux 平台:从 SSH 到 PyCharm 远程开发
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址