どんどん肥大化していく~/.ssh/confi
をどうにかできないかなーと思い調べたところ、ssh-client
では設定ファイルの分割などサポートしていませんでした。。
で、世の中には同じような事を考えている方は沢山いるようで、Qiitaなどを参考にファイルを分けてみました。
conf.dに分割する
やってる事は上記Qiitaの投稿と同じ。とりあえずファイルを分割しました。
↓こんな感じ
$[~/.ssh] tree
.
├── conf.d
│ ├── config
│ ├── projectA.conf
│ ├── projectB.conf
│ ├── projectC.conf
│ ├── github.conf
│ └── vagrant.conf
├── config
├── id_rsa
├── id_rsa.pub
├── known_hosts
└── make-config.sh
~/.ssh/config を作成するスクリプトを設置
上記tree
にあるmake-config.sh
がconfigファイルを作成するスクリプトです。
中身は単純にconfig
と全ての*.conf
をcatで結合しているだけ。
#!/bin/bash
cat ~/.ssh/conf.d/config ~/.ssh/conf.d/*.conf > ~/.ssh/config
ssh
コマンドなどをalias
としてしまうと、zshの補完機能が潰れてしまうかと思い、スクリプトを通して都度手動で作成するようにしました。
今までは、Vagrant利用時にssh-config
を設定するのが面倒だったのですが、これからはvagrant ssh-config > ~/.ssh/conf.d/vagrant-hoge.conf
などとして、既存の設定に影響する事なく使えるようになりました!:D