ネットワークエンジニアのアレ

技術情報メインの備忘系ブログです

Macで複数サーバへのSSH接続時に鍵を使い分ける方法

SSH bænkSSH bænk / @boetter

自宅で使っている端末をWindowsからMacにして半年ほど経ちましたが、Windowsとの違いで未だ戸惑うことがあります。

 

今回はMacから鍵交換方式で複数のサーバにSSH接続する方法です。(サーバによって鍵を使い分ける)

前提など

鍵の作成、公開鍵のサーバ設置などは実施済みの前提です 。

 

クラウド上のサーバは複数管理しているので、その全てに鍵交換方式のSSHで接続します。

例としてサーバA、サーバB用に秘密鍵A、秘密鍵Bを作成するという前提で記載します。

 

クライアントは「iTerm」を使ってます。

 

はじめに

Windowsの場合は「Tera Term」でSSH接続した際に秘密鍵を選べば接続できます。

接続するサーバに応じて秘密鍵を選べば、他には特に意識せずに複数のサーバに接続できます。

 

Mac(というかiTerm)では、SSH接続するときに特に鍵を選ぶダイアログなどは表示されません。

 

デフォルトで参照する秘密鍵は以下です。

/Users/ユーザ名/.ssh/id_rsa

 

サーバA、サーバBいずれに接続した場合も上記の鍵を参照します。たぶん。

 

設定方法

接続先のサーバによって秘密鍵を使い分けるには、以下のファイル(config)を作成します。

/Users/ユーザ名/.ssh/config

 

斜体&赤文字が環境に応じて変更する箇所です。

 

Host ホスト名orIPアドレス

  HostName ホスト名orIPアドレス

  Port ポート番号

  User SSHユーザ名

  IdentityFile 秘密鍵のパス

 

サーバAとサーバBの定義例は以下のような感じになります。 

Host サーバAのIP or ホスト名

  HostName サーバAのIP or ホスト名

  Port 22

  User root

  IdentityFile ~/.ssh/id_rsa_a

 

Host ーバBのIP or ホスト名

  HostName サーバBのIP or ホスト名

  Port 22

  User root

  IdentityFile ~/.ssh/id_rsa_b

 

これで、サーバAに接続する際は「id_rsa_a」を、サーバBに接続する際は「id_rsa_b」を参照します。