前言
在前端开发中,我们经常需要在服务器上执行一些命令,如上传文件、执行脚本等等,这时就需要用到 SSH 连接。虽然 Node.js 已经自带了 SSH 客户端和服务器,但并不方便使用,使用起来比较麻烦。这时,我们可以使用 npm 包 ssh2-multiplexer 来轻松管理多个 SSH 连接。
安装
使用 ssh2-multiplexer 首先需要安装 Node.js,然后使用 npm 安装 ssh2-multiplexer 包。
npm install ssh2-multiplexer
基本使用
连接 SSH
首先,我们需要创建一个 SSH 连接对象。
const Multiplexer = require('ssh2-multiplexer'); const sshConn = new Multiplexer({ host: 'your.host.com', username: 'your-username', privateKey: require('fs').readFileSync('/path/to/privateKey'), });
其中,需要传入的参数包括:
host
: SSH 服务器地址port
: SSH 服务器端口号,默认为 22username
: SSH 登录用户名password
: SSH 登录密码,如果使用私钥登录,则不需要privateKey
: SSH 私钥,路径或者内容
执行命令
使用 sshConn.shell() 函数就可以在 SSH 服务器上执行命令。
-- -------------------- ---- ------- --------------------------- ------- - -- ----- ----- ---- ----------------- -------------- - ----------------------------- -------------- ---------- - ------------------- -- -------- -------------- -------------------- -------------- - -------------------- - - ------ --- -------------- ------------- ---
其中,需要传入的参数包括:
callback
: 回调函数
上传文件
使用 sshConn.sftp() 函数上传文件。
sshConn.sftp(function(err, sftp) { if (err) throw err; sftp.fastPut(localPath, remotePath, function(err) { if (err) throw err; console.log('File transfered'); sshConn.end(); }); });
其中,需要传入的参数包括:
callback
: 回调函数
示例代码
下面是一个完整的示例代码,包括连接 SSH,执行命令和上传文件。
-- -------------------- ---- ------- ----- ----------- - ---------------------------- ----- ------- - --- ------------- ----- ---------------- --------- ---------------- ----------- -------------------------------------------------- --- --------------------------- ------- - -- ----- ----- ---- ----------------- -------------- - ----------------------------- -------------- ---------- - -------------------------- ----- - -- ----- ----- ---- ----------------------- ----------- ------------- - -- ----- ----- ---- ----------------- ------------- -------------- --- --- -------------------- -------------- - -------------------- - - ------ --- -------------- ------------- ---
总结
使用 ssh2-multiplexer 可以轻松管理多个 SSH 连接,在前端开发中非常有用。本文介绍了 ssh2-multiplexer 的使用,包括连接 SSH,执行命令和上传文件,并给出了详细的示例代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a78ccae46eb111f2a9