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
andhostname1
上,username0
但我的使用者名在hostname2
is上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
這是有道理的,因為我要求它以hostname1
as登錄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 *
到最後將使它再次為您工作。