SSH 跳转主机错误

SSH 跳转主机错误

我无法理解 ssh 跳转主机的特殊行为。
我的 ~/.ssh/config 中有以下配置:

Host bastion-server
  Hostname server.bastion.com
  ForwardAgent yes
  User user
Host internal-server
  Hostname 10.0.0.123
  User user2
Host *%via-bastion
  ProxyCommand ssh bastion-server -W $(echo %h | cut -d%% -f1):%p

当我尝试使用该命令连接时,ssh internal-server%via-bastion它会引发此错误:

通道 0:打开失败:管理禁止:打开失败
ssh_exchange_identification:远程主机关闭连接

然而,当我定义

Host bastion-server
  Hostname server.bastion.com
  ForwardAgent yes
  User user
Host internal-server
  Hostname 10.0.0.123
  User user2
  ProxyCommand ssh bastion-server -W %h:%p

并且使用ssh internal-server它效果很好。

知道为什么会发生这种情况吗?

答案1

在第一种情况下,您的代理命令扩展为:

ssh bastion-server -W internal-server:22

在第二,

ssh bastion-server -W 10.0.0.123:22

前者不起作用,因为你的堡垒服务器无法识别该名称internal-server

(翻译不会发生在客户端,因为客户端根本不明白它应该Host internal-server在运行时查看什么ssh internal-server%via-bastion——就它而言,那些是完全不同的名称。)

相关内容