express转发添加ssh

express转发添加ssh,第1张

要在Express应用程序中添加SSH转发,需要使用ssh2模块。以下是添加SSH转发的步骤:

1. 安装ssh2模块

在终端中运行以下命令:

```

npm install ssh2

```

2. 导入ssh2模块

在Express应用程序中导入ssh2模块:

```javascript

const ssh2 = require('ssh2')

```

3. 创建SSH连接

使用ssh2模块创建SSH连接,并设置远程主机端口

```javascript

const conn = new ssh2.Client()

conn.on('ready', function() {

console.log('SSH连接已建立')

// 在此处添加转发代码

}).connect({

host: '远程主机',

port: 22,

username: '用户名',

password: '密码'

})

```

4. 添加转发

在SSH连接成功后,使用conn.forwardOut()方法添加转发:

```javascript

conn.forwardOut('本地主机', 0, '远程主机', 远程端口, function(err, stream) {

if (err) throw err

// 在此处处理流

})

```

其中,本地主机和本地端口可以是任意值,远程主机和远程端口是需要转发的目标主机和端口。

5. 处理流

在添加转发后,可以使用stream对象处理数据流。例如,将流传递给Express应用程序:

```javascript

app.get('/ssh', function(req, res) {

conn.forwardOut('localhost', 0, '远程主机', 远程端口, function(err, stream) {

if (err) throw err

stream.pipe(res)

})

})

```

这将创建一个路由,将来自SSH转发的流传递给Express应用程序的响应。

为了限制 SSH 仅用于TCP加密传输,有必要新建个最低权限的 SSH 帐号。步骤如下(备注:本教程适用于CentOS、RedHat、Fedora):

1、root登陆 VPS 后,输入如下命令创建一个权限最低的用户(备注:将username改为你想要的用户名):

useradd -M -s /sbin/nologin -n username

2、修改该用户的密码:

passwd username

根据提示输入两遍密码

搞定收工。

尽情地享受 SSH 代理带来的乐趣吧!

补充:

1、关于 SSH 代理软件,有 Tunnelier 和 MyEnTunnel 两种选择,一般我会选择前者。

下载地址:点击这里

2、用以上命令建立的用户已是最低权限,用此帐号登陆PUTTY或者WinSCP,都会使程序自动关闭或报错,比如WinSCP就会出现:Cannot initialize SFTP protocol. Is the host running a SFTP server?的提示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11462541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存