思路与上篇(PyCharm远程调试服务器python代码 )是一致的,所以端口转发这部分直接照抄上篇:
一、端口转发
对于没有公网IP的远程训练服务器,需要先配置端口转发,可以用ssh借道有办公网IP的办公机器。
0、公司给配置了一台Ubuntu系统的台式机器A,开发时想用Windows笔记本B,把远程CentOS训练服务器记为C。
1、首先需要修改台式机A上的ssh配置文件,如果不修改配置的话,将只有机器A可以访问训练服务器C。
$ sudo vim /etc/ssh/sshd_config
添加:
GatewayPorts yes
PasswordAuthentication yes
然后重启机器A的sshd服务使上述配置生效。
$ sudo systemctl restart sshd
2、在训练服务器C上向机器A主动建立SSH连接,转发训练服务器C的22号端口
3、用ssh命令转发端口,ssh -NTf -R 转发端口号:localhost:22 机器A的用户名@机器A的IP
$ ssh -NTf -R 2333:127.0.0.1:22 zhuangweiji@10.220.12*.25*
输入密码后就在后台运行了
4、验证,在机器B上
$ ssh zhuangweiji@10.220.12*.25*
登陆上的话就证明ssh隧道建立成功了
5、理论上,A和B可以是同一台机器,也就是C可以直接把端口转发给有pycharm的开发机器。不过由于我的开发机上下班会带着移动,移动过程中SSH不能保持连接,经常要重新配置IP,所以选择了用办公室的台式机中转。
二、免密登录
0、端口转发完成后,在windows机器B上,本地cmd窗口生成公钥和密钥(密钥默认放在C:\Users\用户名\.ssh下)
ssh-keygen -t rsa -b 4096
1、把公钥添加到A机器的公钥集,法1:
将公钥id_rsa.pub复制到机器A的~/.ssh文件夹下,重命名为id_rsa_x260.pub(我的机器是x260),并将其追加到A机器的公钥集里
cat id_rsa_x260.pub >> authorized_keys
2、把公钥添加到A机器的公钥集,法2:
ssh-copy-id username@10.221.*.*
会自动把公钥append到A机器的$HOME/.ssh/authorized_keys里
三、安装 OpenSSH
0、Windows 10 机器 上需要安装 OpenSSH,管理员身份打开 PowerShell
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
四、远程开发调试
0、打开 VSCode,添加插件 Remote Development, 会自动安装 Remote-Container, Remote-SSH 及 Remote-WSL 全家桶,也可以只安装Remote-SSH。
1、安装好插件之后,右侧边栏选择remote explorer,下拉菜单栏选择SSH target,再点击configure小齿轮
2、选择c:\user\用户名\.ssh\config,添加如下信息
3、Hostname 填机器A的ip,port填转发的端口,填入用户名,由于已经在A机器上添加公钥,因此不需要密码。
保存后,ssh targets里面就会出现机器A,点击connect to host in new window之后,就可以直接在新窗口中访问机器C。
4、插件被分成了本地和远程两部分,本地插件不能在远程使用,需要重新安装
总结
到此这篇关于VSCode远程开发调试服务器c/c++代码的文章就介绍到这了,更多相关VSCode远程调试c/c++代码内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
题型:不定项选择题、填空题、编程题 不定项选择题 1、正则表达式(a|b)*c+[^0-9]可匹配下列哪些字符串? A、abacc B、c8 C、adc D、abac10 2、下列对进程运行状态说法正确的有? A、执行态可进入就绪态 B、就绪态可进入执行态 C、阻塞态可进入创建态 D、就绪态可进入阻塞态 3、若定义了char ch[]="abc\0def"."p=ch";则执行printf
本文向大家介绍C#微信开发(服务器配置),包括了C#微信开发(服务器配置)的使用技巧和注意事项,需要的朋友参考一下 小编对微信开发颇感兴趣,查阅了网上相关文章进行整理,方便大家一起学习。 1、注册帐号--填写服务器配置 在https://mp.weixin.qq.com/ 微信公众平台上注册帐号; 服务号是公司申请的微信公共账号,订阅号是个人申请的,个人权限比较少; 登录微信公众平台官网后,在公众
C++四种类型转换 进程内存分布 多进程、多线程、多协程优缺点 STL由哪六部分构成 拷打WebServer,另外给了一个场景,让优化 手撕单例模式 手撕快排非递归 面试官问的题不难,可能是手撕代码的地方出了点问题,一面面完挂了。
北京线下。奔着 KPI 面去的。 一面 - 技术面 自我介绍。 项目。 最近印象深刻的事情。 学过什么数据结构和算法,刷过多少力扣题。 实现 strcpy。看我写的慢给我打断了,问我是不是没写过。答曰是,把思路给它讲了下,并说明拷贝时可能出现的覆盖问题。 我这都能一面过?着实离谱。 二面 - 技术面 本科干了啥,研究生干了啥。 对职位什么看法?是奔着高薪来的还是啥? 拿着我的成绩单,说这成绩也不高
+ C++类跟结构体的区别、默认访问权限 + 静态关键字的作用、绑定在哪个区 + 静态成员函数作用、可以调用类中其他非静态成员函数吗 + 封装特性、封装整体的目的是? + 怎么去访问类里面的私有变量(不允许通过公共接口访问):友元 + C++如何实现多态 + 什么是纯虚函数、作用 + 重载和重写区别 + C++内存分配方式有哪几个区、堆区和栈区使用场景 + 堆上new了数组,释放时怎么写 + de
我想在远程服务器上运行我的java代码以获得更快的速度(服务器非常强大)。我想要的是将我的Intellij连接到那个远程服务器并运行我的代码。但我仍然想在我的本地机器(即我的笔记本电脑)上使用IntelliJ。 我在IntelliJ中找到了一个配置部分,它位于中,在那里我可以设置远程服务器的地址、用户名和密码。但我不知道下一步该怎么办。