web-dev-qa-db-ja.com

要塞ホストと異なるユーザー名を使用したSSH

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

hostname0hostname1のユーザー名は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これはhostname1username2としてログインするように要求しているので意味がありますが、私のユーザー名は実際にはusername0であるため、明らかに機能しません。

それぞれの状況で正しいユーザー名を使用するようにsshを構成するにはどうすればよいですか?

4
moriarty-s3A

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 *を最後に移動すると、再び機能するようになります。

2
Jakuje