我希望能够通过 IPSec 隧道建立到远程服务器的 SSH 连接。因此,我需要使用本地端点作为中间跃点来实现此目的。
以下命令已经可以正常工作:
ssh -tt smals ssh -tt lpextapp050a
smals
是中间服务器的名称,如我的.ssh/config
文件中所定义。lpextapp050a
是目标服务器的名称,如.ssh/config
文件中所定义smals
所以我尝试将其转换为我的配置,.ssh/config
如下所示:
Host lpextapp050a
User <username>
ProxyCommand ssh root@smals -W lpextapp050a:22
但是,尝试连接ssh lpextapp050a
给了我这个错误:
channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
ssh_exchange_identification: Connection closed by remote host
谷歌似乎表明我需要检查sshd 的AllowTcpForwarding
和设置,但这些设置正确,即。它们不存在于设置文件中。我尝试专门设置它们,但没有改变任何东西。PermitOpen
smals
有谁知道我做错了什么?
答案1
我已经发现了我的错误。
别名lpextapp050a
是在服务器用户.ssh/config
的文件中定义的。root
smals
当使用此配置文件建立连接时,ssh -tt smals ssh -tt lpextapp050a
已加载并遵守该文件。
尝试使用 ProxyCommand 建立相同的内容不是加载这个配置文件。我终于通过阅读服务器/var/log/auth.log
上的文件发现了这一点smals
。
因此,我通过基本上将相关部分(IP、用户)复制到本地配置文件中来解决我的问题。