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的. 链接给大家贴一下, 记得给各位老师点个赞, 我的就无所谓了. 我就是一个传送门~
- https://blog.csdn.net/qq_39736991/article/details/118968851
- https://blog.csdn.net/weixin_43843402/article/details/123190417
- https://zhuanlan.zhihu.com/p/425641299
以上是关于vscode连接远程服务器中的容器的主要内容,如果未能解决你的问题,请参考以下文章
VSCode + docker + SSH实现远程连接服务器并进行开发