写在前面:开发这个插件的背景是我所在的公司的测试环境的机器是不能够直接在本地通过SSH登陆上去的,需要先SSH登陆到一个跳板机上面,然后再跳板机上面SSH登陆到测试环境的机器上面。另外一个比较坑的地方就是测试环境的机器和代码仓库的网络是不通的,所以测试环境的代码部署是通过sz命令一个一个本地上传(对,压缩包都不能传),另外本地电脑的网络和测试环境完全隔离,测试是通过在测试机器上面发包实现。
讲道理,这是一种很笨拙的做法,但是由于公司网络限制,又没有办法。然而自从前段时间不小心看见了一片关于Xshell代理隧道实现内网访问的文章,下来仔细想了想,竟然可以通过这个方法来实现本地直接访问测试环境,发测试请求包等等。后来又想到可不可以写一个PHPStorm插件实现在编辑器右键然后可以在弹出菜单里面选择一个同步到测试环境或者从测试环境同步实现一键代码同步。
所以这篇文章主要会记录一下几个知识点:
- 三种SSH代理的区别和原理。
- jsch实现跳板机多次ssh登陆的原理。
- 基于jetbrains(phpstorm,idea,pycharm等)的IDE的插件开发介绍。
- 怎样实现用户可配置插件和怎样在插件中通过jsch实现SSH代理。
- 一些其他的坑。