vscode连接远程服务器中的容器

Posted 统计小白er

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode连接远程服务器中的容器相关的知识,希望对你有一定的参考价值。

0 环境介绍

  • windows系统
  • vscode version: 1.71.0
  • 服务器系统: ubuntu

本片内容主要分为三部分:

1 vscode连接服务器中自己的docker

这里前提是你已经创建好相应的容器(暂不介绍如何操作了).
这里要记住创建容器的两个端口号, 一般用-p参数, 比如: -p 123:456. 这里123端口指的是主机端口(host端), 456指的是这个容器内部的端口.

1.1 进入容器, 容器内部操作:

这里直接进入操作, 你要是缺少什么软件, 自己查询安装即可.
使用 vim工具进行修改如下文件:

vim /etc/ssh/sshd_config

修改内容:

  • 将”PermitRootLogin“的值改为”yes“,并取消注释;
  • 将#Port 22 改为Port 456(修改ssh默认的端口为容器的端口号), 并取消注释.

然后重启ssh服务:

/etc/init.d/ssh restart

再就是需要设置 vscode连接 docker容器时的密码:

passwd

会输入两次密码, 自己设置即可, 两次输入保持一致.

1.2 vscode操作:

安装插件: Remote-SSH.

版本没测试, 我用到的当时操作时间最新版本, 没问题.
安装好了, 侧边栏会有一个这个图标, 点击:

然后点击如下图标:

点击之后, 出现一个窗口:

选择第一个, 一般是"C:\\Users\\user_name\\.ssh\\config"这种格式.
这个时候, 如果左下角出现弹窗:

点击Open Config. 进行相关设置:

Host my_like_name
  HostName 1.1.1.1
  User root
  Port 123

这里主要是几个参数(目前我用到了这几个).

  • Host: 一个名字, 自己起就好;
  • HostName: 需要连接的服务器ip;
  • User: 连接服务器容器的用户名, 一般是root;
  • Port: 连接端口, 我这里就是123, 你翻一翻我是如何设置的, 自己类比一下即可.

一定别设置错了.

这个时候, 大体就好了, 不行的话, 重启一下vscode, 重连服务器, 重启容器, 重启笔记本, 反正就是操作一个不行, 就全部操作边, 这个时候应该就差不多了.

继续!

2 vscode连接的时候, 一直卡在Setting up SSH Host XX:Copying VS Code Server to host with scp

差不多提示信息类似吧, 我的是这样, 我个人认为是我连接的服务器的网不行或者网被限制了. 所以, 还是需要自己进行一个手动设置上传.
这里有些繁琐, 我尽可能介绍下吧, 如果觉得没太理解, 可以看一下这位大佬整理的文章, 很受益~
如果继续看我给你介绍下, 那还请大家继续看下去~

2.1 进入容器, 进行相关信息记录:

如果你用本地vscode连接过服务器的容器, 也就是我在第一步说的操作. 那么容器中 /root/路径下, 会有一个.vscode-server文件夹, 这里默认会隐藏, 所以建议用 ls -alh命令进行查看.
第一个点: 就是 /root/.vscode-server/bin/路径下, 有一个文件夹, 一串数字, 这里我们记作commit_id.(和大佬学的, 原因不详)

2.2 本地下载vscode-servlet.tar.gz文件:

根据2.1部分介绍, 我们把commit_id填充如下网址:

https://update.code.visualstudio.com/commit:commit_id/server-linux-x64/stable

假设我的commit_id是123321, 那么我需要的话网址是:

https://update.code.visualstudio.com/commit:123321/server-linux-x64/stable

然后把你对应的这个网址去浏览器进行下载, 下载下来然后上传服务器.
这里我建议你先把vscode连接断掉, 甚至关闭.
先将容器内/root/.vscode-server/bin/commit_id文件夹下的东西都删除掉(当然还是建议你记作commit_id, 别误删了, 然后补救措施我也不知道).
你需要将这个文件vscode-servlet.tar.gz复制到对应的容器的/root/.vscode-server/bin/commit_id这个位置, 进行tar解压:

tar -zxf vscode-server-linux-x64.tar.gz

最后, 记得把tar包文件删除了.

这个时候重新打开vscode, 进行连接就差不多了, 我记得有的时候有点慢, 就可以打开左侧文件夹, 有个打开文件夹, 可以点击试试, 一般一会就ok了.

再就是因为太懒了, 我不想每次都输密码, 甚至一次连接反反复复输入密码.
就这么说吧, 我就不想输入密码, 和我一样继续看吧, 其他同学可以撤了~
主要是这么多字, 我也实在不太想写了, 写的比较随意, 大家见谅.

3 vscode连接服务器容器 byebye密码

写到这, 突然想起来这个教程可能涉及到系统的问题, mac系统我没测试, 所以, 我跑上面标注一下~
好了, 写完了. 我们继续~

3.1 在本地找id_rsa.pub文件

进入C:\\Users\\your_user_name\\.ssh路径, 看看你有相应的id_rsa.pub文件吗? 如果有, 很棒; 如果没有, 可以如下操作.

  • 打开cmd, 按win+r, 输入cmd.
  • 输入ssh-keygen, 一路回车.

上面这个我没测试过, 因为我有相应的文件. 如果有相应的同学测试过, 可以反馈给我一下, 这样我也更有底气~

3.2 在容器内部, 进行文件操作

我这边很简单, 把3.1说的id_rsa.pub文件, 上传服务器, 然后cp到容器内部/root/.ssh/路径下.
然后执行如下命令, 把内容写入另一个文件, 文件名称看命令, 不想写了:

cat id_rsa.pub >> authorized_keys 

然后, 重启ssh:

sudo service ssh restart

这个样子, 这个时候, 整体就完事了.


累了, 就这样吧.
对了, 我写的情况, 不适配@crown老师~


4 参考链接

对了, 参考了好多大佬, 老师, 前辈的文章, 我主要根据我的情况写了写, 可能涉及的情况不是很全. 我只能说我是这样设置的, 测试是ok的. 链接给大家贴一下, 记得给各位老师点个赞, 我的就无所谓了. 我就是一个传送门~

以上是关于vscode连接远程服务器中的容器的主要内容,如果未能解决你的问题,请参考以下文章

vs code远程连接主机

VSCode + docker + SSH实现远程连接服务器并进行开发

vscode如何直接远程到ubuntu虚拟机docker容器?vscode远程开发

vscode连接某一个服务器一直让提示输入密码

VSCode连接服务器

使用VSCode的Remote-SSH连接Linux进行远程开发