Gil*_*il' 64
如果您提前计划,使用最新版本的 OpenSSH 非常简单。
第一次打开主连接。对于后续连接,通过现有的主连接路由从连接。在您的 中~/.ssh/config,将连接共享设置为自动发生:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Run Code Online (Sandbox Code Playgroud)
如果您将 ssh 会话启动到与现有连接相同的(用户、端口、机器),则第二个会话将通过第一个会话进行隧道传输。建立第二个连接不需要新的身份验证并且非常快。
uli*_*tko 25
使用nc工具和 ssh 隧道很容易实现。
在您的 ssh 会话中,输入~C新行。您将获得 ssh“服务控制台”提示,如下所示:
ssh>
Run Code Online (Sandbox Code Playgroud)
输入本地转发命令以打开 ssh 隧道:
ssh> -L22000:targethost:22001
Forwarding port.
Run Code Online (Sandbox Code Playgroud)
targethost您所连接的机器的主机名或 IP 地址在哪里。
现在,假设目标机器上的 ssh 服务器没有配置为禁止隧道,你有所需的连接转发:ssh你机器上的客户端侦听端口 22000,它会将发送到它的任何流量转发到 22001 端口targethost。
这就像在您已经打开的 ssh 会话中输入以下命令一样简单:
remote$ nc -l localhost 22001 | sh
Run Code Online (Sandbox Code Playgroud)
这将启动一个 TCP 服务器侦听端口 22001——这是我们 ssh 隧道的目标端口——并将接收到的数据(大概是 shell 命令)路由到一个targethostshell 实例。
local$ cat yourscript.sh | nc localhost 22000
Run Code Online (Sandbox Code Playgroud)
这会将脚本的正文发送到您的 ssh 隧道,并最终在targethost. 您将使用 ssh 会话在终端中看到脚本的输出。
我还会注意到,在这种情况下,ssh 隧道(第 1 步)并不是严格要求的;您也可以打开服务器并直接通过互联网连接到它。但是,如果目标主机无法直接访问(例如在 NAT 后面),或者需要 ssh 加密,您将需要使用隧道。
| 归档时间: |
|
| 查看次数: |
31060 次 |
| 最近记录: |