服务器炼丹手册
服务器炼丹手册
从0开始完成ssh连接以及各种配置,边学边补充
连接服务器
ssh远程连接服务器
- vscode安装Remote-SSH扩展
- 打开用户目录下配置文件
C:\Users\username\.ssh\config
- 在其中添加以下内容(如果之前有内容的话写在下面即可,不用覆盖)
1 |
|
例如
1 |
|
这之后点击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密码
- 首先使用命令
ssh-keygen -t rsa
,之后会在C:\Users\username\.ssh
下生成id_rsa
以及id_rsa.pub
,对应的是私钥和公钥。 - 在.ssh文件夹下打开git
bash,输入命令
ssh-copy-id host别名
,这里host别名就是config文件中提及的标识 - 此时已经可以ssh登录服务器了。在
powershell
中使用命令ssh host别名
即可 - 在config文件中追加
IdentityFile ~/.ssh/id_rsa
,类似如下形式此时再去连接服务器就不需要密码了。1
2
3
4
5
6
7Host 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
常用的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 |
|
更多使用指南可以参照这篇