反向 SSH 隧道

Nilesh Katuwal 2023年1月30日
  1. 反向 SSH 隧道的工作机制
  2. 使用 SSH 的反向隧道
  3. 反向构建一个 SSH 隧道
反向 SSH 隧道

你可以利用该已建立的连接通过从本地计算机到远程计算机的反向 SSH 隧道创建新连接。

因为连接是从远程计算机到你建立的,所以以其他方式使用它被称为反向

由于 SSH 是安全的,你还在现有的安全连接中建立了安全连接。这意味着你的远程计算机连接充当原始连接中的专用隧道。

反向 SSH 隧道的工作机制

远程计算机使用已建立的连接在反向 SSH 隧道中侦听来自本地计算机的其他连接请求。

在本地计算机上,远程计算机侦听网络端口。如果检测到对该端口的 SSH 请求,它将通过 http 连接将连接请求发送回自身。

它在本地和远程计算机之间建立新的连接。

使用 SSH 的反向隧道

你需要在使用前安装 OpenSSH 服务器,但你还没有这样做。安装 OpenSSH 服务器以解决问题。

$ sudo apt install openssh-server

如果本地机器以前从未接受过 SSH 连接,你可能需要激活 SSH 守护进程 sshd

$ sudo systemctl start sshd

反向构建一个 SSH 隧道

我们可以使用 ssh 命令连接到远程服务器。

$ ssh [your-account-login]@[server-ip]

建立连接后,远程服务器端的人员(例如系统管理员)应运行以下命令。

$ ssh -fN -R 8080:localhost:92 username@yourMachine-ipaddress.

系统上端口 8080 的 SSH 连接请求将通过此连接请求发送到远程服务器上的端口 92。请求从你的机器到你的机器的 SSH 连接。

在此阶段,你将建立与端口 8000 的连接。

$ ssh username@localhost -p 8000

然后你的请求将被转发到远程服务器。因此,当要求提供这些详细信息时,请使用你的远程服务器帐户登录密码

你还可以使用 SSH 密钥使从远程计算机到本地计算机的连接更加安全。在远程计算机上键入以下命令。

$ ssh-keygen

要构建一个安全的密码,请使用由符号分隔的四个单词,并确保只有知道该短语的人才能通过 SSH 访问你的计算机,而无需输入密码

你还必须使用 ssh-copy-id username@localhost 命令将创建的 key 复制到本地计算机。