gpt4 book ai didi

linux - 使用 netcat 的 ssh 代理命令

转载 作者:太空狗 更新时间:2023-10-29 12:14:08 25 4
gpt4 key购买 nike

在这样的例子中:

Host destination
ProxyCommand ssh gateway nc %h %p

网关和目的地之间的连接是否加密?我很困惑,因为我有 2 个假设,但都没有说服力:

  • 它没有加密。源中的标准输入通过加密的源网关 ssh 连接,并在传递给 nc 之前得到解密,即 nc 的标准输入与源中进入 ssh 客户端的标准输入相同。但我认为 %p 是 22,即 ssh 端口——这不符合这个假设。

  • 它是加密的,网关处的 sshd 守护进程传递给 nc 加密数据。然后说我们不执行 nc,而是执行 cat,sshd 守护进程是否也将加密数据传递给它?这听起来也不对。

最佳答案

当然是加密了!只是为了很好地理解这里发生了什么:

[ client $ ssh destination ]
|
'-> [ gateway $ nc destination 22 ]
|
'-> [ destination $ whatever]

在客户端你只运行ssh destination。这被翻译成 ssh gateway nc destination 22

所以第一个执行的命令是 ssh gateway with command。我们肯定已经加密了第一步。

nc destination 22 命令在gateway 服务器上的 session 中运行。它基本上将所有 I/O 重定向到 destination 主机,就像它一样(但我们已经在加密 channel 中!)。

因此您将再次与 destination 进行 key 交换和身份验证,成功后,您可能会在那里得到 shell 提示符。所以它又被加密了。

关于linux - 使用 netcat 的 ssh 代理命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31661959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com