模块 1 - Local to Remote · 第 05 课
SSH、远程服务器与 tmux
安全登录 Linux server,让长时间训练在断线后仍可恢复。
SSH mental model
SSH 是本地客户端与远端服务之间的加密会话。密码或私钥用于证明身份;私钥只留在本机,服务器保存公钥。不要把私钥复制到项目、聊天记录或远端共享目录。第一次连接时核对 host key,避免忽略未知主机警告。
ssh -i ~/.ssh/id_ed25519 user@gpu.example.org
真实主机名、用户名和路径用占位符替换。Windows OpenSSH 通常也支持同一命令,PowerShell 路径写法可能不同。
远程工作流
ssh登录并确认hostname,pwd,nvidia-smi(若有 GPU)。git clone或git pull获取代码,创建项目环境。- 在 tmux 中启动可记录日志的任务。
- 断开、重连、
tmux attach,检查日志和进程。
tmux 实验
tmux new -s train
mkdir -p logs
python train.py 2>&1 | tee logs/train.log
# 按 Ctrl-b,再按 d,离开但不结束会话
tmux ls
tmux attach -t train
关闭窗口不会自动保存 Python 状态,所以仍需 checkpoint 和幂等的启动命令。tmux 只解决会话持久性,不解决磁盘满、进程崩溃或数据损坏。
诊断清单
ssh -v只用于诊断连接问题,输出可能包含敏感路径。echo $SSH_CONNECTION确认当前确实在远端。df -h检查磁盘,ps/nvidia-smi检查进程和 GPU。- 示例中的
logs/便于练习;正式训练应把日志写到有备份策略的安全目录,checkpoint 写到明确的持久卷。
练习
在本机用 tmux(或等价终端会话工具)运行一个 60 秒脚本,断开再恢复;写一段 README 说明启动、查看、停止和恢复命令。不要在没有授权的服务器上测试 SSH。
参考答案
恢复步骤必须包括会话名、日志位置、进程检查和 checkpoint 位置;只记住“重新运行命令”可能造成重复训练或覆盖结果。
第 05 课 学习进度仅保存在当前浏览器。