Ssh

帶有堡壘主機和不同使用者名的 SSH

  • September 8, 2016

我想使用兩個連續的堡壘主機登錄 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

我的使用者名在hostname0andhostname1上,username0但我的使用者名在hostname2is上username2

hostname0 和 hostname1 的條目按預期工作。但是 for 的條目hostname2似乎忽略了該User選項。

ssh hostname2導致顯示:

username0@hostname2's password:

如果我將 hostname2 的 ProxyCommand 更改為,ssh -l username2 -W %h:%p hostname1那麼它會要求我輸入 username2@hostname1 的密碼。 username2@hostname1's password 這是有道理的,因為我要求它以hostname1as登錄username2,但它顯然不起作用,因為我的使用者名實際上是username0

如何配置 ssh 以在每種情況下使用正確的使用者名?

使用不同順序的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 *到最後將使它再次為您工作。

引用自:https://unix.stackexchange.com/questions/308496