vscode通过跳板连接远程服务器docker容器

目的:深度学习不能在本机跑吧,丢服务器上,那怎么debug呢??曾经的我全靠print…

下载vscode,安装remote-ssh插件

不详细说了…

docker内配置ssh

  1. 在目标服务器里开一个docker容器,用-p把容器的端口22转到服务器的5222:
docker run --name 容器名字 -it -p 5222:22 --shm-size 64G  --rm --gpus all  -v 挂载目录 容器名字 bash
  1. 【远程服务器容器】设置 root 账户密码:
passwd root

根据提示设置密码即可。如果你启动容器的时候使用 -u 参数指定了一个非 root 用户,那么相应的要设置该账户的密码。

  1. 【远程服务器容器】很多镜像都不会默认安装 ssh,所以需要在容器内安装 ssh 服务:
apt update && apt install -y --no-install-recommends openssh-server
  1. 【远程服务器容器】一般进入容器时使用的都是 root 账号,但是 ssh 默认是禁止 root 账号使用密码远程登录的,所以需要修改 ssh 配置文件使其允许:
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config

但是如果你启动容器的时候使用 -u 参数指定了一个非 root 用户,那么这步可以跳过。

  1. 【远程服务器容器】启动 ssh 服务:
 service ssh start

到此docker内准备完成了

在~/.ssh/里创建一个config文件

Host target
  HostName 目标服务器ip
  User root
  IdentityFile ~/.ssh/id_rsa1 #本机到目标服务器的密钥
  Port 5222  #目标服务器端口,因为docker的22转到了5222
  #LocalForward 6006 127.0.0.1:6666 这个是端口转发,目前不需要
  ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p -q jump
Host jump
  HostName 跳板机ip
  User 用户名
  IdentityFile ~/.ssh/id_rsa  #本机里到跳板的密钥文件
  Port 22  #jump端口

注意的是ProxyCommand的ssh要写全路径,同时你(本机)要有目标服务器的密钥文件,但是目标服务器里只加了跳板机的公钥,于是我机智的从跳板服务器把私钥下载到了本地哈哈…

vscode连接

vscode里点击左边的remote explorer,打开config,出现两个服务器,点击目标服务器连接,完成了…

借鉴了

https://blog.csdn.net/u010099080/article/details/104801858?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值