zid*_*sk8 8 ssh gateway tunnel
我的网络布局是这样的:

现在 Alice 可以通过以下方式访问 SSH 网关(从现在开始只是网关):
ssh alice@external.ip
Run Code Online (Sandbox Code Playgroud)
网关上的授权密钥文件如下所示
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
Run Code Online (Sandbox Code Playgroud)
因此,当 Alice 尝试使用她的私钥连接到网关时,她实际上是连接到了 Web 服务器(网关 PC 可以使用无密码的私钥连接到 Web 服务器,从而保持透明)。
问题
我该如何设置,以便 Alice 也能够将事物 scp 发送到 Web 服务器?
我知道这会建立一个单独的连接,但是有没有办法让它像普通的 ssh 一样-R12345:localhost:22工作,这样即使是类似的东西也能工作?
Raú*_*udo 10
如果您想访问另一个 ssh 服务器后面的 ssh 服务器,只需使用“ProxyCommand”。示例:添加到 .ssh/config
Host Alice
User myLoginAtAlice # optional
ProxyCommand ssh -o Compression=no gateway netcat -w 90 %h %p
ServerAliveInterval 30
Compression yes
Host gateway
HostName gateway.public.ip
User myLoginAtTheGateway # optional
Compression yes
Run Code Online (Sandbox Code Playgroud)
然后,您可以直接使用“Alice”作为主机名,简单地“ssh Alice”或“rsync”或“scp”。魔法对客户来说是隐藏的。
这允许您在网络拓扑/配置更改时快速重新配置 ssh,只需更改 .ssh/config,而不是更改每个脚本。
解释:ssh 使用作为“代理命令”给出的命令作为传输而不是直接的 TCP 连接。Netcat 是一种网络工具(在数百万其他功能中)只是将其 stdin/stdout 重定向到指定的远程主机。因此,“ssh gateway nc sshserver 22”将您连接到该机器的 ssh 服务器。%h 是主机名,%p 是端口。这种设置允许您指定“端口 N”来更改端口,而无需更改 ProxyCommand 行。
我激活对最终计算机的压缩并禁用外部压缩,因为压缩加密或压缩数据不会进一步减少数据量。任何对压缩设置的摆弄当然也是可选的。
| 归档时间: |
|
| 查看次数: |
9377 次 |
| 最近记录: |