11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Mac]シロク流、sshの設定ファイル分割管理

Last updated at Posted at 2015-04-06

0. 前提

環境

  • Mac OSX
  • Ruby(gemが使える)

sshの設定ファイルを複数に分けたい

  • 通常、sshの接続先の設定は~/.ssh/configという名のファイルに記述される。
  • 接続ホスト数が増えるほど、~/.ssh/configの中身は混乱をきたす。
  • 複数人で共通のssh接続先を共有する場合、~/.ssh/configの中身を「部分的に」共有したい場合がある。
  • そんな時、ssh設定ファイルが複数に分けられたら、便利ですよね!

というわけで、弊社片岡氏が作成したコマンドsshxの導入手順と使い方を本ブログでは紹介します。

1. 導入手順

1-1. インストール

gem install sshx

1-2. プレーンsshからの移行処理

sshx hostname

ここまでやると、~/.sshxというディレクトリが生成され、中身は

$ ls ~/.sshx/
config		ssh_config

となっている。
~/.sshx/ssh_configの中身は、sshxインストール前の~/.ssh/configの中身と全く同じになっている。
代わりに、~/.ssh/configの中身は、~/.sshx/配下の設定ファイルにより自動生成される。
(つまり、sshxインストール後は~/.ssh/configを直接いじることは2度とない。いじりたければ~/.sshx/ssh_configをいじればよい)

1-3. ~/.sshx/configの中身

下記のようにすれば良い。

NamespaceSeparator -
EnableAlias true
SshPath /usr/bin/ssh
  • NamespaceSeparator:ネームスペースの区切り文字
  • EnableAlias:sshに対してsshxのエイリアスを貼るかどうか
  • SshPath:プレーンsshへのパス

1-4. 複数ファイルを設定ファイルとして置く

~/.sshx/配下に設定ファイルを置くことで、これらを~/.ssh/configに自動的に反映させることが出来る。

シロクでは各プロジェクトごとにsshのconfigファイルを共通で管理しており、その置き先にシンボリックリンクを貼ることで、~/.sshx/配下に設定ファイルを擬似的に置いている。

ln -s /path/to/sshx_config ~/.sshx/hoge_config

(注1) 間違えてシンボリックリンクを貼ってしまった場合

unlink ~/.sshx/hoge_config

とすればシンボリックリンクを消せる。

(注2) hoge_configの中身例

NameSpace hoge-prd

Host web
  HostName xxxxx.xxxxx.com
  User ec2-user
  Port 22
  StrictHostKeyChecking no
  IdentityFile ~/.ssh/hoge.pem

Host batch
  HostName yyyyy.yyyyy.com
  User ec2-user
  Port 22
  StrictHostKeyChecking no
  IdentityFile ~/.ssh/hoge.pem

NameSpace hoge-stg

Host web
  HostName zzzzz.zzzzz.com
  User ec2-user
  Port 22
  StrictHostKeyChecking no
  IdentityFile ~/.ssh/hoge.pem

Host batch
  HostName wwwww.wwwww.com
  User ec2-user
  Port 22
  StrictHostKeyChecking no
  IdentityFile ~/.ssh/hoge.pem

1-5. sourceコマンドで上記を反映 & pemを置く

source ~/.bashrc

をすれば、上記が反映される。
あとは、hoge.pemをチームメンバーから受け取り、~/.ssh/配下に置けば、めでたく

ssh hoge-prd-web
ssh hoge-stg-batch

などといったコマンドでサーバにアクセスできるようになる。

【参考URL】
▼設定ファイル分割や、コマンド補完が使える拡張sshコマンドを公開しました。
http://blog.katty.in/4936

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?