ssh_config のファイルを分割する

どんどん肥大化していく~/.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

SHOTA

I'm WEB developer

Tokyo, Japan http://senta.me/