まえがき
踏み台サーバーのEC2からいろいろなサーバーへSSH接続するときのTipsです。pecoを使ってHost名をインクリメンタルサーチし、EnterひとつでSSH接続できるようにしましょう。
.ssh/configを設定する
.ssh/configを使うメリットなどは以下を参考にしてください。
https://qiita.com/passol78/items/2ad123e39efeb1a5286b
例えば、以下のように.ssh/configを作成します。
Host dev-machine01
HostName 52.192.64.xxx
User ec2-user
IdentityFile ~/.ssh/dev-machine.key
Host dev-machine02
HostName 52.192.64.yyy
User ec2-user
IdentityFile ~/.ssh/dev-machine.key
すると、踏み台サーバーで
ssh dev-machine01
とコマンドを打つだけで52.192.64.xxxへSSH接続できます。
多少は便利になりましたが、Host名を覚えておかなければいけないのは大変です。そこでpecoを利用してHost名をインクリメンタルサーチできるようにしましょう。
pecoをインストールする
wgetを使ってインストールする。
wget https://github.com/peco/peco/releases/download/v0.5.2/peco_linux_amd64.tar.gz
tar xvfz peco_linux_amd64.tar.gz
cd peco_linux_amd64
chmod 100 peco
sudo mv peco /usr/local/bin/
rm -r peco_linux_amd64 peco_linux_amd64.tar.gz
pecoがインストールできたら以下のコマンドで.ssh/configの中からHost名をインクリメンタルサーチしてみましょう。
grep -w Host .ssh/config | peco
aliasを設定する
最後にHost名をインクリメンタルサーチし、EnterひとつでSSH接続するコマンドにaliasを設定しましょう。~/.bashrcに以下を書き込みます。
alias s='ssh $(grep -w Host ~/.ssh/config | awk '\''{print $2}'\'' | peco)'
source ~/.bashrc
で再読み込みして、sというコマンドが打てれば成功です。