はじめに
.ssh/configが長すぎていつもgrepしている人へってのを書いたら、もっとバリ便利な方法がありました!
.bash_profileにsshコマンド用のBash-Completionを設定
.bash_profileに下記を追加してやりましょう。
~/.bash_profile
# 下記を追加
function _compreply_ssh(){
COMPREPLY=(`cat ~/.ssh/config | grep -i -e '^host' | cut -d " " -f 2 | grep -E "$2"`)
}
complete -F _compreply_ssh ssh
使用例
例えばこんなconfigを書いていた場合
.ssh/config
# hoge service(develop)
Host dev-front-hoge
Hostname 192.168.10.10
User hogeop
Host dev-backoffice-hoge
Hostname 192.168.10.11
User hogeop
Host dev-api-hoge
Hostname 192.168.10.12
User hogeop
Host dev-ci-hoge
Hostname 192.168.10.13
User hogeop
# hoge service(production)
Host prd-front-hoge
Hostname ******
User ****
ProxyCommand ssh bastion-hoge -W %h:%p
... 略)
# fuga service(develop)
Host dev-front-fuga
Hostname ******
User ****
... 略)
こんな感じで、補完してくれます。
コマンド
$ ssh dev-【tabキーを叩く】
dev-front-hoge dev-backoffice-hoge dev-api-hoge dev-ci-hoge
おわりに
have a good ssh life!