編集部からのお知らせ
CNET_ID限定PDF「システム監視の新ワード」
注目の記事まとめ「Emotet」動向

SSH接続を設定ファイルで容易にするには

Jack Wallen (Special to ZDNet.com) 翻訳校正: 編集部

2022-05-12 07:30

 「Secure Shell」(SSH)は、あらゆる「Linux」ユーザーがおそらくいつかは使用することになるツールの1つだ。SSHを使用すると、簡単(かつ安全)にリモートサーバーやデスクトップにログインして、それらのマシンで管理や開発、確認などの作業を実行することができる。

 SSHは以下のコマンドを実行するだけで使用できる。

ssh jack@192.168.1.11

 あるいは、以下の極めて単純なコマンドでも使用可能だ。

ssh 192.168.1.11

 もちろん、IPアドレスの部分は、アクセスする必要のあるマシンのアドレス(またはドメイン)に置き換える。

 設定の異なる(例えば、ユーザー名やSSH認証キーの異なる)多数のマシンにアクセスする必要がある場合、SSHはもう少し複雑だ。毎日、約20台の異なるサーバーにログインしなければならないとしたらどうなるか想像してみてほしい。これらのサーバーのIPアドレスやドメインを把握しておかなければならないだけでなく、使用されているユーザー名や認証キーも記憶する必要がある。それだけでもかなり大変な作業かもしれない。

 幸い、SSHでは、そうした情報をすべて格納する設定ファイルを作成できる。したがって、ssh olivia@192.168.1.100 -p 2222のような長いコマンドを入力しなくても、ssh web1と入力するだけで済む。

 本記事では、これを実行する手順を紹介する。

SSH設定ファイルを作成する

 これらすべてのリモートマシンへのSSH接続に使用するLinuxマシンにログインする。ターミナルウィンドウを開いて、図Aのコマンドを実行し、新しい設定ファイルを作成する。

図A

「nano」を使用して新しいSSH設定ファイルを作成する。
「nano」を使用して新しいSSH設定ファイルを作成する。

 これは新しいファイルなので、空白のキャンバスのようなものだ。ここにサーバーの設定を追加していくことができる。例えば、以下のリモートサーバーを設定したいとしよう。

  • アドレス「192.168.1.100」、ユーザー名「olivia」のweb1。
  • アドレス「192.168.1.101」、ユーザー名「nathan」、SSHキー「~/.ssh/id_nathan」のdb1。
  • アドレス「192.168.1.102」、ユーザー名「lilly」、2222ポートのdocker1。

 最初のエントリーは以下のようになる。

Host "web1"
     Hostname "192.168.1.100"
     User olivia

 この時点でファイルを保存して閉じると、以下のコマンドを使用して、192.168.1.100にSSH接続できるようになる。

ssh web1

 先に進んで、次の2つのエントリーを設定しよう。これらのエントリーは以下のようになる。

Host db1
     Hostname "192.168.1.101"
     User nathan
     IdentityFile ~/.ssh/id_nathan
     PubkeyAuthentication yes
Host docker1
     Hostname "192.168.1.102"
     User lilly
     Port 2222

 ファイルを保存して閉じる。これで、以下のコマンドを使用して、これらのマシンにSSH接続できるようになった。

ssh web1
ssh db1
ssh docker1

 必要に応じて、各ホストにニックネームを使用し、覚えやすくすることをお薦めする。これをやっておかないと、どのマシンに接続しようとしているのかを忘れてしまい、記憶を呼び起こすために、設定ファイルを頻繁に参照しなければならなくなる。

 それでは、すべてのリモートサーバーで同じユーザー名を使用しているが、ローカルマシンでは別のユーザー名を使っているという場合は、どうすればいいのだろうか。例えば、ローカルマシンのユーザー名はjackだが、すべてのリモートサーバーでadminというユーザー名を使用しているとしよう。以下のように、IPアドレスにワイルドカードを使用することで、これらすべてのサーバーに対して単一のエントリーを作成することが可能だ。

Host 192.168.1.*
User admin

 上記の設定は、設定ファイルの一番上に配置される。

 その後、「User」オプションを省略して、各サーバーを必要に応じて個別に設定することができる。例えば、192.168.1.200と192.168.1.201の両方のサーバーがSSHキー認証を使用している場合は、エントリーを以下のように設定する。

Host web2
     Hostname 192.168.1.200
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes
Host web3
     Hostname 192.168.1.201
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes

 192.168.1.xというIPアドレススキームのすべてのマシンにadminというユーザー名を適用したため、そのユーザー名はすべての接続に適用される。必要に応じて、「User」設定行を追加し、そのグローバル設定をオーバーライドすることも可能だ。

 SSH設定ファイルで利用できるオプションは、ほかにもいくつかあるが(SSH設定の公式ドキュメントですべて説明されている)、本記事で紹介した例さえ押さえておけば、SSH設定ファイルの使用を開始できるはずだ。

 SSH設定ファイルを使用して、SSHでのリモートアクセスを容易にする方法の説明は、以上である。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]