ssh2 是一个基于 Node.js 的用于操作 SSH 协议的包,可以方便地进行服务器的远程连接和操作。本文将介绍如何使用 npm 包 ssh2 进行 SSH 连接及其相关操作。
安装
在项目目录下运行以下命令安装 ssh2:
npm install ssh2
连接服务器
首先,我们需要通过 client.connect()
方法来连接服务器,代码示例如下:
-- -------------------- ---- ------- ----- ------ - ----------------------- ----- ---- - --- --------- ---------------- ---------- - ----------------------- -------------- --- ---------------- ------------- - --------------------- ----- --- -------------- ----- ------------ ----- --- --------- ------- --------- ---------- ---
上述代码中,我们创建了一个新的 Client
对象,并通过 connect()
方法连接到了本地的 SSH 服务器。其中,host
参数为服务器地址,port
参数为端口号,默认为 22,username
和 password
分别为登录用户名和密码。当连接成功时,'ready' 事件将被触发并输出 'Connection established';如果连接失败,则会触发 'error' 事件并输出相应的错误信息。
执行命令
一旦连接上服务器,我们就可以使用 conn.exec()
方法执行相应的命令了。代码示例如下:
-- -------------------- ---- ------- ------------- ---- ------------- ------- - -- ----- ----- ---- ------------------ ---------- - -------------------- --------- ----------- ----------- ------------- -------------- - -------------------- - - ------ -------------------- -------------- - -------------------- - - ------ --- ---
上述代码中,我们通过 exec()
方法执行了一个简单的文件列表命令 ls -l
。当执行成功时,'close' 事件将被触发并输出 'Command execution complete',同时会输出相应的标准输出和标准错误流信息。
文件传输
ssh2 还提供了文件传输的功能,可以通过 conn.sftp()
方法进行操作。代码示例如下:
conn.sftp(function(err, sftp) { if (err) throw err; sftp.fastPut('localPath', 'remotePath', function(err) { if (err) throw err; console.log('File transfer complete'); conn.end(); }); });
上述代码中,我们使用 sftp()
方法创建了一个 SFTP 对象,并使用 fastPut()
方法将本地文件 localPath
上传到远程服务器的路径 remotePath
中。当文件传输完成时,输出 'File transfer complete' 并关闭连接。
总结
通过本文的介绍,我们学习了 npm 包 ssh2 的基本用法,包括连接服务器、执行命令和文件传输等操作。ssh2 可以帮助我们更加便捷地进行 SSH 连接及其相关操作,为前端开发提供了更多的可能性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/53483