使用堡垒主机和不同用户名的 SSH

使用堡垒主机和不同用户名的 SSH

我想使用两个连续的堡垒主机登录 Linux 服务器。我的.ssh/config文件如下所示:

Host *
  User username0
Host hostname0
  Hostname foo
Host hostname1
  Hostname bar
  Port 0
  ProxyCommand ssh -W %h:%p hostname0
Host hostname2
  User username2
  Hostname bat
  Port 1
  ProxyCommand ssh -W %h:%p hostname1

我的用户名是hostname0和但我的用户名hostname1是。username0hostname2username2

hostname0 和 hostname1 的条目按预期工作。但 的条目hostname2似乎忽略了该User选项。

ssh hostname2导致显示:

username0@hostname2's password:

如果我将主机名2的ProxyCommand更改为,ssh -l username2 -W %h:%p hostname1那么它会要求我输入用户名2@主机名1的密码。 username2@hostname1's password 这是有道理的,因为我要求它登录hostname1username2,但它显然不起作用,因为我的用户名实际上是username0

如何配置 ssh 在每种情况下使用正确的用户名?

答案1

使用不同的块顺序Host。匹配Host *所有内容并且ssh_config不会覆盖已存储的条目:

Host hostname0
  Hostname foo
Host hostname1
  Hostname bar
  Port 0
  ProxyCommand ssh -W %h:%p hostname0
Host hostname2
  User username2
  Hostname bat
  Port 1
  ProxyCommand ssh -W %h:%p hostname1
Host *
  User username0

将其移至Host *最后将使其再次为您工作。

相关内容