反向 SSH 隧道
Nilesh Katuwal
2023年1月30日
你可以利用该已建立的连接通过从本地计算机到远程计算机的反向 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
复制到本地计算机。