如何远程连接 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





