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

今更ですがSSHのconfigファイルが肥大してきたので、分割してGitで管理するようにしました。
SSHのバージョンが7.3以上であれば Includeが使えるようです。

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

  
% 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ファイルに、ファイルを指定することを読み込むことが可能のようです。
ワイルドカードが使えるので、そのディレクトリ配下という設定も可能です。

私の環境では、includeconf配下にワイルドカードを指定して使うようしました。
Include
conf設定後、gitを登録してアップすることで、他の端末からでもcloneして使うことができます。

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

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

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

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

cloneが終わったら、自分自身のconfigにIncludeの記述パスを入力して完了になります。
ファイルが肥大したり見通しが悪くなるの避けることができ、さらにGitで管理することでスムーズに同環境を作ることが可能ですね。

参考記事

Author

札幌でフロントエンドエンジニアとして働いています。好きな音楽はSIAM SHADE!
SIAM SHADEの六人目のメンバーとして日々ロックを愛し続けている。
HTML,CSS,JavaScriptをベースにCMS構築が得意です。
HAMWORKS社員 https://ham.works