前言
在前端开发过程中,常常需要远程连接到服务器进行部署或者调试代码。但是在远程服务器上操作又比较不方便,这时候我们可以使用ssh
来进行远程操作。开发人员一般使用ssh-keygen
命令生成公钥私钥来验证身份,但是在团队协作中每个人都需要添加公钥,会比较麻烦。因此,我们可以使用npm包ssh-mole来实现ssh
远程连接过程的简化。
什么是ssh-mole?
ssh-mole是一个npm包,可以将路由表中定义的路径转发到远程服务器上的目标路径,并自动识别连接时的身份。ssh-mole利用了ssh的密钥认证来自动验证身份,从而避免了多人协作环境下添加公钥的麻烦。ssh-mole还支持项目级别的SSH别名和SSH代理,更加方便易用。
ssh-mole的安装和使用
ssh-mole可以通过npm进行安装和使用。
使用npm全局安装ssh-mole:
npm install -g ssh-mole
安装成功后,我们可以在命令行中输入以下命令启动一个ssh-mole服务:
ssh-mole start
启动ssh-mole服务后,我们需要配置一下ssh-mole的路由表来实现远程路径的转发。
我们在项目中新建一个ssh-mole.config.js
文件,配置ssh-mole路由表:
-- -------------------- ---- ------- -------------- - - ---------- ---------- ------------------------- ------- ---------------------- -- ---------- - ------- ------- ------------- ------------- - - -
remote.gateway
为我们要连接的SSH服务器IP地址。remote.path
为我们要连接的目标路径。routes
为路由表配置,其中path
为本地路径,remotePath
为远程路径。
启动ssh-mole服务:
ssh-mole start
使用npm run dev
即可启动本地的服务,并且路由表定义的路径会被转发到远程服务器上。当我们切换到生产环境时,只需要修改路由表中的remote.gateway
和remote.path
即可。
ssh-mole的高级用法
ssh-mole支持更多的高级用法,例如SSH别名和SSH代理。
SSH别名
我们可以在ssh-mole配置文件中添加SSH别名,这样我们就可以用别名来代替长的服务器IP地址。配置文件实例如下:
-- -------------------- ---- ------- -------------- -- -------- - ------ - ----------- ------------------ --------------- ------------------------ -- ------- - ----------- ------------------- --------------- ------------------------ - -- --------- - -------- ------ ------- ---------------------- -- --------- - - ------- ------- ------------- ------------- - - -
alias
中配置我们的SSH别名和身份验证密钥文件路径。remote.alias
代表我们要连接的目标SSH服务器别名。- 在
routes
中就可以使用别名代替服务器IP地址了。
SSH代理
如果我们需要连接到多个SSH服务器,可以使用SSH代理。即用一台SSH服务器做为跳板机,将流量转发到其他服务器。SSH代理配置文件实例如下:
-- -------------------- ---- ------- -------------- - - -------- - ------- - ----------- ------------------- --------------- ------------------------ -- ------ - ----------- ------------------ ------- ------ -- ------- - ----------- ------------------- ------- ------ - -- --------- - -------- ------ ------- ---------------------- -- --------- - - ------- ------- ------------- ------------- - - -
alias
配置SSH服务器的别名和身份验证密钥路径。- 在SSH代理示例中
dev
和prod
服务器都依赖于jump
服务器的SSH代理。 remote.alias
代表我们要连接的目标SSH服务器别名。
SSH代理可以更加方便地管理多个服务器之间的连接,有效地提高了开发效率,特别是在多人协作环境下。
结论
在前端开发中,ssh-mole是一个十分有用的npm包,可以在多人协作时减少身份验证的麻烦。ssh-mole通过路由表实现了本地路径到远程路径的转发,支持SSH别名和SSH代理等高级功能,大大方便了我们的开发流程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a78ccae46eb111f27f