服务器炼丹手册

服务器炼丹手册

从0开始完成ssh连接以及各种配置,边学边补充

连接服务器

ssh远程连接服务器

  1. vscode安装Remote-SSH扩展
  2. 打开用户目录下配置文件C:\Users\username\.ssh\config
  3. 在其中添加以下内容(如果之前有内容的话写在下面即可,不用覆盖)
1
2
3
4
5
Host <NickName>

HostName <服务器IP地址>

User <username>

: 该连接的标识,用于与其它连接区分 <服务器IP地址>: 你所要连接的服务器的IP地址 : 你在服务器中的账号用户名

例如

1
2
3
4
5
Host Alephia

HostName 10.1.1.1

User hhh

这之后点击vscode左侧远程资源管理器选项,可以看到已经出现刚刚写入的NickName了

右键点击连接,会让你输入服务器user的密码,正确输入之后即可连接成功,此时你在vscode界面左下角可以看到绿色的SSH: NiceName字样

当然这个过程可能会遇到一些问题

学校服务器IP无法ping通

有些服务器IP想要ping通需要使用学校的VPN,一般每个学校都会给详细的连接教程 这里以ecnu为例:

首先下载vpn工具 打开 https://eoffice.ecnu.edu.cn/4e/ba/c6178a85690/page.htm 之后,选择对应平台,版本安装即可,安装之后打开效果如下

输入连接vpn的地址之后填入账号密码即可连接,

有时候可能会出现连接一小会之后VPN自动断开的情况,可以检查本地梯子,wifi稳定性等等。

ssh免密连接

如果经常需要登录服务器的话,免密连接可以提供便捷性,否则每次登录都要输入user密码

  1. 首先使用命令ssh-keygen -t rsa,之后会在C:\Users\username\.ssh下生成id_rsa以及id_rsa.pub,对应的是私钥和公钥。
  2. 在.ssh文件夹下打开git bash,输入命令ssh-copy-id host别名,这里host别名就是config文件中提及的标识
  3. 此时已经可以ssh登录服务器了。在powershell中使用命令ssh host别名 即可
  4. 在config文件中追加IdentityFile ~/.ssh/id_rsa,类似如下形式
    1
    2
    3
    4
    5
    6
    7
    Host Alephia

    HostName 10.1.1.1

    User hhh

    IdentityFile ~/.ssh/id_rsa
    此时再去连接服务器就不需要密码了。

配置

深度学习基础配置

因为实际使用的是服务器那边的文件和资源,vscode只是提供了一个跟本地操作一样的使用体验,所以一些配置是必须的。 基础的炼丹环境,conda安装,conda pip换源,torch安装等等不再赘述

文件传输

本地与服务器之间的文件传输是必不可少的,这里推荐FileZilla,安装教程略过。 打开之后是这个样子

点击左上角“打开站点管理”,新建一个站点 协议选择SFTP,之后主机输入服务器IP,之后填入用户密码即可。点击连接之后就可以实现本地与服务器的文件互传了。 服务器文件架构位于页面右侧,只需将本地内容拖进对应位置即可。 如果有从服务器下载内容的需求的话,在站点管理-高级-默认本地目录处可以设置文件的下载地址

会话终端分离方案

在vscode中打开终端,同时也建立了一个会话,在这个终端中跑的代码,是建立在会话基础上的,当终端关闭的时候,会话也随之取消,训练也会中断。 那么服务器/vpn有连接时长限制,或者网络不稳定等情况,就很容易导致训练中断,所以需要一种会话与终端分离的手段,训练开启之后,终端正常关闭,会话可以保持,并且可以在之后与另一个终端建立联系,便于后续操作。

市面上常见的是Tmux以及screen,这里推荐Tmux

Tmux最简单的安装就是如下命令,但是需要sudo权限。

1
sudo apt-get install tmux
对于非root用户可以按照参考这个教程

常用的Tmux分离会话与终端步骤为 1. 终端使用Tmux新建一个会话 tmux new -s my_session,其中my_session是你取的会话名字,之后就会进入一个新的界面,终端命令正常使用,只是这里鼠标滚轮被用于查看历史命令。 2. 在该程序中开始炼丹 3. 按下快捷键Ctrl+b, 然后按下d,即可实现会话与终端的分离,可以安心关上电脑睡觉去了。需要注意的是,直接按下Ctrl+d会退出该会话并且同时删除它,使用需谨慎 5. 睡醒之后使用命令tmux attach-session -t my_session来重新连接到该会话

常用Tmux快捷键

  • Ctrl+b [:使用滚轮/上下键查看历史内容,按q退出该模式
  • Ctrl+b d:分离当前会话。
  • Ctrl+b s:列出所有会话。
  • Ctrl+b $:重命名当前会话。

常用Tmux命令:

1
2
Tmux ls:查看已建立的会话
tmux rename-session -t <old-session-name> <new-session-name>:重命名会话

更多使用指南可以参照这篇


服务器炼丹手册
https://sophilex.github.io/posts/de558e84/
作者
Sophilex
发布于
2025年1月8日
许可协议