client -> host1(踏み台サーバ) -> host2(目的のサーバ) とログインしたいケースでsshコマンドを一回で済ませる方法
~/.ssh/configへ下記のように記載することで行うことができる。
Host host1 HostName host1.hoge.fuga User user IdentityFile ~/.ssh/id_rsa Host host2 HostName host2.foo.bar User user IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -CW %h:%p host1
簡単に解説するとssh host2
を実行した段階でProxyCommandに記載されたコマンドが実行される。その仕組みを利用することで多段sshを簡易化してしまう。
ただ、難点としては以下の方法を使用する際に踏み台の先のサーバが表示されてしまう。
sshLoginHost=`cat ~/.ssh/config | grep -i ^host | awk '{print $2}' | fzf`