configファイルでsshを管理する方法

ssh事情

sshでサーバーに接続するときのお話をします。
管理するサーバーが増えてくると、それぞれの環境によって微妙にsshの設定が違ってきてしまう場合はありませんか?サーバーが一括で管理されていればこんなことを起こらないのでしょうが、少しづつサーバーを増やしたり、担当者が変わったりすることで、仕方なく…ということはよくあることです。
今回はconfigファイルを使って、より便利にsshを利用できるような管理方法をご紹介します。

configファイル

ところで、~/.ssh/フォルダにconfigというファイルがあるのはお気づきですか?テキストエディタなどで開いてみると、何も書かれていないか、次のように記述されていると思います。まずは、このファイルの記述方法を学びます。
Host foo
  HostName        bar.com
  Port            10022
  Protocol        2
  IdentityFile    ~/.ssh/id_rsa
  User            baz
項目 内容
Host sshコマンドに指定するためのラベルの役割を果たします。
※ ホストの設定は複数行うことができます。
HostName ホスト名を入力します
Protocol SSHのプロトコルを指定します。
SSH2などと書かれていたら2を指定します
IdentityFile 秘密鍵の場所を指定します
User 接続するときのユーザーを指定します
この設定を行うことで、次のような利点もあります。
ssh foo
と入力することで、sshコマンドはconfigファイルを参照して次のようにコマンドを入力するのと同じことになります。
ssh baz@bar.com -p 10022 -i ~/.ssh/id_rsa

事例

事例1:ユーザー名は同じだけど、ポートがことなる

Host production_sv
  HostName        bar.com
  Port            10022
  User            baz

Host test_sv
  HostName        bar2.com
  Port            22
  User            baz

事例2:なぜか公開鍵を複数作ってしまった

Host production_sv
  HostName        bar.com
  IdentityFile    ~/.ssh/production_id_rsa
  User            baz

Host test_sv
  HostName        bar2.com
  IdentityFile    ~/.ssh/test_id_rsa
  User            baz
このように、いろいろな環境に合わせてsshでの接続方法を管理することができます。

コメント

このブログの人気の投稿

【KotlinとJava】分解宣言

wxPythonでのモーダルダイアログ作成