远程连接与传输
连接训练服务器和机器人主机,在本机和远程之间传文件。
基础条目参考:OpenSSH 手册。
SSH 登录与配置
ssh 登录,用 ~/.ssh/config 给主机起别名。
登录远程主机
ssh user@server.example.com
- 助记:
SSH← Secure Shell(安全远程终端);user@host分别指定以谁的身份、登录哪台主机。 - 作用:替换用户名和主机;首次连接时核对主机指纹。
指定 SSH 端口
ssh -p 2222 user@server.example.com
- 助记:
-p= port(端口);ssh 使用小写 p 指定连接端口。
密钥
ssh-keygen、ssh-copy-id,配置免密登录。
创建 Ed25519 SSH 密钥
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_demo -C "demo"
- 助记:
keygen= key generation(密钥生成);-t= type(类型),-f= file(文件),-C= comment(备注)。 - 作用:示例使用独立文件名;设置口令,若已有同名文件不要覆盖。只把 .pub 公钥提供给服务端。
端口转发
ssh -L 把远程的 Jupyter、TensorBoard 映射到本机浏览器。
把远程服务转发到本机
ssh -N -L 127.0.0.1:8888:127.0.0.1:8888 user@server.example.com
- 助记:
-L= local forwarding(本地转发),-N不执行远程命令;两个地址分别是本机监听位置与远端连接目标。 - 作用:远程服务需监听远端 8888;保持此连接,浏览器访问本机 8888。
文件传输
scp、rsync,上传代码、下载模型和实验结果。
把文件上传到远程主机
scp results.csv user@server.example.com:~/results/
- 助记:
scp← secure copy(安全复制);冒号前是远程主机,冒号后是远程路径。
增量同步目录并显示进度
rsync -av --progress ./results/ user@server.example.com:~/results/
- 助记:
rsync可按 remote synchronization(远程同步)记;-a= archive(保留属性等),-v= verbose(详细),progress 是进度。 - 作用:源目录末尾的 / 表示同步目录内容;两端都需 rsync,这里不删除远端额外文件。
远程挂载
sshfs 把远程目录挂载到本机。
挂载远程目录到本机
mkdir -p ~/remote-data
sshfs user@server.example.com:/home/user/data ~/remote-data
- 助记:
SSHFS= SSH filesystem(通过 SSH 访问的文件系统);把远程目录映射成本机目录。 - 作用:需要 SSHFS 与 FUSE;Linux 卸载可用 fusermount -u ~/remote-data,macOS 通常用 umount。