2つのシーケンシャル要塞ホストを使用して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
のユーザー名はusername0
ですが、hostname2
のユーザー名はusername2
です。
Hostname0とhostname1のエントリは期待どおりに機能します。しかし、hostname2
のエントリはUser
オプションを無視しているようです。
ssh hostname2
により、これが表示されます。
username0@hostname2's password:
Hostname2のProxyCommandをssh -l username2 -W %h:%p hostname1
に変更すると、username2 @ hostname1のパスワードの入力を求められます。 username2@hostname1's password
これはhostname1
に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 *
を最後に移動すると、再び機能するようになります。