跳转主机访问我们的生产服务器。例如,如果我要登录到主机C,则必须SSH到主机A。在主机A中,我可以SSH到主机B。在主机B中,然后我可以SSH到主机C。
我正在使用secureCRT作为ssh客户端。我发现当我需要将文件传输到主机C时,可以使用z-modem协议直接从计算机将文件发送到主机C。这样可以绕过主机A和B。
那么它怎么做呢?我可以编写一个程序使用z-modem发送文件而不是使用鼠标操作吗?
答案 0 :(得分:0)
SSH隧道
SSH端口转发是SSH中的一种机制,用于将应用程序端口从客户端计算机隧道传输到服务器计算机,反之亦然。它可以用于为旧应用程序添加加密,使其通过防火墙,并且某些系统管理员和IT专业人员使用它来从其家用计算机向内部网络打开后门。它也可能被黑客和恶意软件滥用以打开从Internet到内部网络的访问。
在OpenSSH中,使用-L选项配置本地端口转发:
ssh -L 80:intra.example.com:80 gw.example.com
此示例打开与gw.example.com跳转服务器的连接,并将与本地计算机上端口80的任何连接转发到intra.example.com上的端口80。
默认情况下,任何人(即使在不同的计算机上)也可以连接到SSH客户端计算机上的指定端口。但是,可以通过提供绑定地址将其限制为同一主机上的程序:
ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com
OpenSSH客户端配置文件中的LocalForward选项可用于配置转发,而不必在命令行上指定。
远程转发 在OpenSSH中,使用-R选项指定远程SSH端口转发。例如:
ssh -R 8080:localhost:80 public.example.com
这允许远程服务器上的任何人连接到远程服务器上的TCP端口8080。然后,该连接将通过隧道传输回客户端主机,然后客户端与本地主机上的端口80建立TCP连接。可以使用任何其他主机名或IP地址代替localhost来指定要连接的主机。
此特定示例对于使外部某人可以访问内部Web服务器很有用。或将内部Web应用程序公开到公共Internet。这可以由在家工作的员工或攻击者完成。
默认情况下,OpenSSH仅允许从服务器主机连接到远程转发的端口。但是,可以使用服务器配置文件sshd_config中的GatewayPorts选项进行控制。可以使用以下替代方法:
GatewayPorts no
这可以防止从服务器计算机外部连接到转发的端口。
GatewayPorts yes
这允许任何人连接到转发的端口。如果服务器在公共Internet上,则Internet上的任何人都可以连接到端口。
GatewayPorts clientspecified
这意味着客户端可以指定一个IP地址,允许从该IP地址连接到端口。语法是:
ssh -R 52.194.1.73:8080:localhost:80 host147.aws.example.com
在此示例中,仅允许从IP地址52.194.1.73到端口8080的连接。