npm 包 redrouter.agent.ssh-proxy 使用教程

阅读时长 4 分钟读完

什么是 redrouter.agent.ssh-proxy?

redrouter.agent.ssh-proxy 是一个基于 SSH 隧道的代理工具,可以让你在本地和远程服务器之间创建一个安全的通道。使用该工具可以实现诸如跳板机、本地端口转发等多种网络连接方案。

安装和使用

安装

使用

  1. 创建一个 SSH 配置文件,比如 ssh_config,写入以下内容:

其中,my_remote_server 是一个 SSH 连接别名,<remote_host> 是远程服务器地址,<remote_usrname> 是远程服务器的用户名,<path_to_private_key> 是本地私钥文件路径,<remote_port> 是远程服务器的 SSH 端口。

  1. 运行 SSH:

这时你应该成功连接到远程服务器了。

如果想要使用本地端口转发,修改配置文件,增加如下内容:

其中,<local_port> 是本地开放的端口,<remote_host><remote_port> 是需要转发到的远程主机和端口。

  1. 使用本地程序连接这个端口:

这时你应该成功连接到远程服务器的 <remote_port> 端口了。

配置文件详解

配置文件使用 OpenSSH 的配置格式,除了前面已经讲过的内容外,其他值的含义可以参考 官方文档

值得一提的是,redrouter.agent.ssh-proxy 使用了一个特殊的 ProxyCommand,它替换了 OpenSSH 默认的 nc 命令,用来进行 SSH 隧道代理。%h%p 是 OpenSSH 自带的变量,分别代表 SSH 连接的目标主机和端口。如果不设置 ProxyCommand,那么就无法连接到远程服务器了。

使用场景

远程服务器访问

在某些场景下,我们只能通过跳板机或者 VPN 来访问某个远程服务器。使用 redrouter.agent.ssh-proxy 可以打通这个限制。

本地开发环境访问

在本地开发环境中,我们可能需要访问远程服务器上的某些服务端口。使用 redrouter.agent.ssh-proxy 可以创建一个安全的 SSH 隧道,将远程端口映射到本地端口上,便于开发调试。

内网穿透

在内网环境中,我们可能需要将本地服务暴露给外网访问。使用 redrouter.agent.ssh-proxy 可以创建一个 SSH 隧道,将本地端口通过 SSH 代理到一个外网服务器上,实现内网穿透。

示例代码

创建一个 SSH 配置文件 ssh_config

在本地启动转发到远程主机的 3000 端口:

在浏览器中打开 http://localhost:3000,即可访问远程主机的 3000 端口了。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067007e361a36e0bce8a74

纠错
反馈