conn
.
on
(
'ready'
,
async
(
)
=>
{
const
readyMsg
=
`
++++++++Client :: ready:
${
ip
}
++++++++
`
;
conn
.
exec
(
shellCmd
,
async
(
err
,
stream
)
=>
{
if
(
err
)
{
const
errorMsg
=
'shellCmd ERROR: '
+
err
.
toString
(
)
;
ctx
.
logger
.
info
(
errorMsg
)
;
return
;
stream
.
on
(
'close'
,
async
(
code
,
signal
)
=>
{
const
log
=
'Stream :: close :: code: '
+
code
+
', signal: '
+
signal
;
if
(
code
!==
0
)
{
const
signalMsg
=
`
脚本异常退出code:
${
code
}
,异常信号signal:
${
signal
}
`
;
ctx
.
logger
.
info
(
signalMsg
)
;
conn
.
end
(
)
;
conn
.
end
(
)
;
}
)
.
on
(
'data'
,
async
data
=>
{
const
dataStr
=
'STDOUT: '
+
data
.
toString
(
)
;
ctx
.
logger
.
info
(
dataStr
)
;
}
)
.
stderr
.
on
(
'data'
,
async
data
=>
{
const
dataStr
=
'STDERR: '
+
data
.
toString
(
)
;
ctx
.
logger
.
info
(
dataStr
)
;
}
)
;
}
)
;
}
)
.
on
(
'error'
,
async
err
=>
{
console
.
log
(
'Client 链接错误'
+
err
.
toString
(
)
)
}
)
.
connect
(
{
host
:
'127.0.0.1'
,
port
:
8080
,
username
:
username
,
password
:
password
,
readyTimeout
:
5000
,
}
)
;
import { Client } from 'ssh2';const shellCmd = 'cd /xxxx/xxxx/ xxxx/ sh xx.shell';const conn = new Client();conn.on('ready', async() => { // 准备就绪 const readyMsg = `++++++++Client :: ready: ${ip} ++++++++`; conn.exec(shellCmd, async (err
1 //前台命令下发
2 app.get('/test/fileDownload', function (req, res) {
3 var downloadPath = req.query.downloadPath;
4 con...
最近在做自动化测试的时候,需要用到
node
js
ssh2
模块将windows上的文件传到linux机器上,由于网上别人封装的
ssh2
-util模块实在不好用,不是下载文件夹之后无法退出,就是下载不下来。可能是我自己用法不对的缘故,由于我没有学过JS,很多不懂,所有用
ssh2
更加不好用,每次我都想说一句:"好恼火"。
好了,吐槽完毕,接下来写写我封装的基本功能。仅仅实现了运行linux的shell
大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以点此扫码加我微信lxchuan12参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》包含20余篇源码文章。历史面试系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信进群。本文来自读者@凌览 投稿,欢迎大家投稿????????????????????????
原文链接:https://juejin.cn/...
-v10.16.0或更高版本节点v12.0.0或更高版本,以支持Ed25519键
(可选)将设置为可选的程序包依赖项(您不需要显式/独立于
ssh2
进行安装),将在可能的情况下自动生成并
使用
。 有关其自身的要求,请参见项目的文档。 该插件当前用于帮助生成最佳的默认密码列表
npm install
ssh2
在服务器上执行“正常运行时间”
const { readFileSync } = require ( 'fs' ) ;
const { Client } = require ( '
ssh2
' ) ;
const conn = new Client
基于electronic /
ssh2
/
node
-pty / xterm / antd / subx和其他库的Terminal / ssh / sftp客户端(Linux,Mac,Win)。
作为终端/文件管理器或ssh / sftp客户端(类似于xshell)
全局热键以切换窗口可见性(类似于guake,默认值为ctrl 2)
多平台(Linux,Mac,Win)
multi支持多种语言(electerm-locales,贡献/修复欢迎)
双击直接编辑远程文件(小的)。
使用
内置编辑器(小的)编辑本地文件。
使用
公钥密码进行身份验证。
Zmodem(rz,sz)。
透明窗口(Mac,Win)。
终端背景图像。
全局/会话代理。
将书签/主题/快速命令同步到GitHub Secret Gist