在 Web 开发中,很多场景都需要使用 SSH2 进行连接和传输文件。而 node.js 中一个重要的 NPM 包,ssh2-client,可以非常方便地实现 SSH2 的连接和操作。该文章主要介绍 ssh2-client 的安装和使用方法。
1. 安装
安装前需要先在系统中安装 OpenSSH 或者其他 SSH2 的客户端。每个系统的安装方式都有所不同。在 Linux 上,通常使用命令 sudo apt-get install openssh-client
。在安装 OpenSSH 客户端之后,在 node.js(已安装)中执行以下命令安装 ssh2-client。
npm install ssh2-client
2. 使用
以下是一个基本的 ssh2-client 连接到远程服务器,执行命令,传输文件的示例代码。
-- -------------------- ---- ------- ----- ------ - ----------------------- ----- --- - --- --------- --------------- -- -- - ----------------- --------- --------------- ----- ------- -- - -- ----- - ------------------- - ---- - ------------------ -- -- - ---------------------- ---------- ------------- ------ -- - -------------------- ------ - ------ --- - -- ------------ ----- ------------ ----- --- --------- ----------- --------- ----------- -- ----- --- - --- --------- --------------- -- -- - ---------------- --------- ----------------- - -------------- ------------- ----- -- - -- ----- - ------------------- - ---- - ---------------------- ---------- - -- ------------ ----- ------------ ----- --- --------- ----------- --------- ----------- --
以上代码首先创建了两个 ssh2-client 实例,连接到同一个服务器,一个用于执行命令,一个用于传输文件。在 connect
方法中传递了远程服务器的地址和登录凭据。在 on('ready')
回调中,可以执行需要的操作。
在第一部分中,我们通过 exec
方法执行了一个命令,输出远程服务器的当前路径。在 stream.on('data')
回调中输出了命令的执行结果。这里还可以使用其他的命令操作,例如 exec('ls -l', callback)
执行目录查询操作。在执行完成后,需要调用 ssh2-client 的 end()
方法关闭连接。在上传和下载文件时,需要使用 scp 实例来完成文件的传输。通过调用 scp
方法,第一个参数为本地文件地址,第二个参数为远程服务器的文件保存路径。在上传或下载完成后需要同样调用 end()
方法结束连接。
3. 深度和学习意义
ssh2-client 是 SSH2 的客户端包装库,可以简单而且高效的处理 SSH2 连接和操作等功能。在 Web 开发中,如果需要使用 SSH2 进行安全的数据传输和访问远程服务器,node.js 自带的 NPM 包 ssh2-client 就可以处理这些问题。另外,ssh2-client 还提供了很多其它命令操作,例如:exec('ls -l', callback)
、exec('cd', callback)
、exec('mkdir', callback)
、exec('rm', callback)
等常见的文件操作。理解如何使用 ssh2-client 可以提升 Web 开发能力,同时巩固网络连接、传输和 Linux 的一些基本知识。
4. 参考
官方文档:https://github.com/mscdex/ssh2-client#readme
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a78ccae46eb111f2b6