当前位置: 首页 > news >正文

远程开发之vacode插件Remote - SSH

远程开发之vacode插件Remote - SSH

    • vscode插件(Remote - SSH)
    • ssh config自定义配置跳板机
    • ssh-agent配置(使ForwardAgent配置生效, 免密拉代码)
    • 拷贝公钥到服务器(实现免密登录服务器)

通过vscode的Remote - SSH插件, 实现远程服务器进行像本地操作一样使用远程服务器, 亦可进行像本地一样无感远程开发.

vscode插件(Remote - SSH)

通过这个插件管理远程连接, 再配合vscode的code命令, 在远程服务器中打开文件和文件夹就像在本地中操作文件和文件夹一样, 体验感超棒

  • 在本地中的操作
    vscode配置remote
# 在vscode的新建远程服务器
ssh <username>@<IP/domain>
# 回车, 输入密码后即可进入服务其中
  • 在远程服务器中的操作
# 在vscode编辑器中打开(或创建文件)文件
code <filename>
# 在vscode中打开文件夹(或工作空间)
code <dir>

到这已经实现了远程开发了, 当然, 要想体验更好, 就需要配合ssh config和ssh-agent来实现跳板机(连接服务器内网)和自动登录(让打开远程项目体验就跟打开本地项目一样)功能了

ssh config自定义配置跳板机

ssh config配置文件(一般是在~/.ssh/config文件中)

上面vscode中新建的服务器中的配置文件基本也是自动在这个配置文件中保存着的

# 示例配置# 外网可访问的地址
Host ma-xxx.internet.companyHostName 11.0.1.172User root# ForwardAgent用于代理本地的ssh密钥, 提供给远程服务器使用, 让远程服务器拉取代码时也跟本地一样无需输入账密, 需配合ssh-agent使用才有效# ForwardAgent yesHost ProxyJump.fa.intranet.companyHostName 11.0.16.17User root# ForwardAgent yes# 配置跳板机, 可配置多级连跳, 无感进入内网中的内网ProxyJump ma-xxx.internet.company# LocalForward用vscode远程时进行自动端口转发(这个配置可不加)# LocalForward kuboard.fa.intranet.company:30084 172.17.0.2:80
  • 涉及文章
    • 远程开发之端口转发1

ssh-agent配置(使ForwardAgent配置生效, 免密拉代码)

  • 前提是本地已经是免密拉代码了
    • 不是的话, 需要将本地ssh公钥先配置到gitee等代码仓库平台中
# 执行命令开启ssh-agent
ssh-agent
# 将ssh密钥交由ssh-agent代理
ssh-add ~/.ssh/id_dsa
# 在macOS上,您可以使用Keychain来存储密钥的密码。这样,您可以在重新启动后自动加载密钥。要将密钥添加到Keychain,请使用以下命令:ssh-add -K [密钥文件路径]# 列出当前已加载到 ssh-agent 中的所有 SSH 密钥的公钥
# ssh-add -L## 如果没有ssh密钥, 需要先生成下密钥
ssh-keygen -t rsa -C "<email>"

到这步, ForwardAgent配置就生效, 即可在远程服务器中免密拉取代码了

拷贝公钥到服务器(实现免密登录服务器)

# 将公钥拷贝到服务器中
ssh-copy-id <用户>@<IP/域名>
  • 涉及文章
    • 使用vscode+ssh免密远程Linux2

到这就实现了自动登录了, 可以进行远程开发了, 当然, 更进一步还有环境相关的问题, 例如需要安装Java或者npm等, 可通过容器开发解决固定开发环境的问题, 等后面再补上

  • 相关文章
    • ssh-tutorial

  1. 远程开发之端口转发 ↩︎

  2. 使用vscode+ssh免密远程Linux ↩︎

http://www.lryc.cn/news/279949.html

相关文章:

  • 大模型实战营Day4 作业
  • 翻译: Streamlit从入门到精通 基础控件 一
  • 【复现】网康科技-防火墙存在RCE漏洞_17
  • vue2、vue3里面去掉访问地址中路由‘#‘号--nginx配置
  • AR HUD全面「上新」
  • Open3D AABB包围盒计算与使用(19)
  • HDFS相关API操作
  • 【AI视野·今日Robot 机器人论文速览 第七十二期】Mon, 8 Jan 2024
  • 背包问题(补充中)
  • 十三、QPalette的简单使用(Qt5 GUI系列)
  • uniapp小程序超出一行显示...并展示更多按钮
  • Qt打包程序
  • 实验用PFA材质烧杯和高硼硅玻璃材质有什么区别?
  • Raspbian安装摄像头
  • 迅腾文化用网络集成化生态系统助力品牌之路的坚实后盾
  • 2401C++,C++编译时自动加密
  • vue 自定义网页图标 favicon.ico 和 网页标题
  • JOSEF约瑟端子排中间继电器 DZY-204 DC110V 导轨安装,板前接线
  • VMware workstation搭建与安装AlmaLinux-9.2虚拟机
  • 小程序基础学习(js混编)
  • git秘钥过期 ERROR: Your SSH key has expired
  • 系列十三、查询数据库中某个库、表、索引等所占空间的大小
  • 【论文解读】SiamMAE:用于从视频中学习视觉对应关系的 MAE 简单扩展
  • Docker(Mysql)将数据库表封装进容器内
  • 细谈Type-C Port的Data Role、Power Role | 乐得瑞科技
  • 团结引擎的安装
  • SpringBoot读取配置文件中的内容
  • 反弹shell方法汇总
  • 三、电脑软件路径移动方式
  • 基于JAVA+ssm智能旅游线路规划系统设计与实现【附源码】