SSHのconfigファイルを分割しGitで管理する方法

Posted on:2017-06-15

今更ですがSSHのconfigファイルが肥大してきたので、分割してGitで管理するようにしました。

SSHのバージョンが7.3以上であれば Includeが使えるようです。

自分のSSHのバージョンは7.4になります。

bash
% ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

仕事用やプライベート用に分割して、設定ファイルGitにアップし違う環境でも使い回しができるようにしておきます。

フォルダ・ファイル構成

.sshの中のinclude_confが分割させた構成になります。

include_confを自分のプライベートのGitにアップして管理させています。

  • ~/.ssh
    • config
    • include_conf/
      • .git/ // include_conf配下をGitに設定
      • personal/
        • git/
          • config
        • server/
          • config
      • work/
        • git/
          • config

Includeの使い方とは?

~/.ssh/直下のconfigファイルに、ファイルを指定することを読み込むことが可能のようです。

ワイルドカードが使えるので、そのディレクトリ配下という設定も可能です。

私の環境では、include_conf配下にワイルドカードを指定して使うようしました。

Include_conf設定後、gitを登録してアップすることで、他の端末からでもcloneして使うことができます。

bash
# =======================================
# Config Include
# =======================================
Include ~/.ssh/include_conf/**/**/*

別の環境でセットアップしてみる

リモート先のGitからcloneして、別の環境にセットアップする方法になります。

bash
cd ~/.ssh/
git clone git@github.com:redamoon/include_conf

cloneが終わったら、自分自身のconfigにIncludeの記述パスを入力して完了になります。

ファイルが肥大したり見通しが悪くなるの避けることができ、さらにGitで管理することでスムーズに同環境を作ることが可能ですね。

参考記事