メインコンテンツへスキップ

~/.ssh/configによるssh接続の管理

··1 分·
Arch-Linux Ssh
Makoto Morinaga
著者
Makoto Morinaga
技術メモ、コーディング、環境構築のための個人ノート。
目次

この記事では、~/.ssh/configファイルを用いてssh接続の管理を行います。

複数のサーバを管理している場合、毎回sshコマンドをサーバごとに入力するのは大変です。さらに鍵認証を採用しているなら、秘密鍵も指定しないといけないのでなおさらです。

そこで、登場するのがsshクライアントの設定ファイルである~/.ssh/configです。

クライアント端末で~/.ssh/configを設定すると、複数のサーバを管理していても簡単に各サーバにログインできるようになります。

なお、今回の設定は、サーバにsshが実施できることが前提となっていますので、まだssh接続を設定していない場合はsshの基本設計sshの鍵認証設定を参考に設定してみてください。

configファイルの作成
#

sshの鍵認証設定の記事を参考にsshの鍵認証設定を実施している場合は、既に~/.sshディレクトリを作成していますので、sshconfigの作成に進んでください。

クライアント端末での~/.sshディレクトリの作成
#

クライアント端末側で、ターミナルからホームディレクトリを開いた状態にします。以下のコマンドでディレクトリ・ファイルの一覧を表示し、~/.ssh ディレクトリの有無を確認します。

Terminal
ls -la

~/.ssh ディレクトリが存在しなければ、以下のコマンドでディレクトリを作成して、700のアクセス権限(ディレクトリのオーナー以外はアクセス不可)を付与します。

Terminal
mkdir ~/.ssh
chmod 700 ~/.ssh

~/.ssh/configの作成
#

以下のコマンドで ~/.ssh 配下にconfigファイルを作成します。

Terminal
touch ~/.ssh/config

~/.ssh/config の編集
#

~/.ssh/config を編集して、接続したいサーバのsshの接続情報を記載します。 ~/.ssh/config の書き方は以下のような形です。

~/.ssh/config
# Aサーバ
Host serverA
    Hostname hogehoge.com
    Port 22
    User tanaka
    IdentityFile ~/ssh/config/serverA.key

# Bサーバ
Host serverB
    Hostname xxx.xxx.xxx.xxx
    Port 50134
    User yamada
    IdentityFile ~/ssh/config/serverB.key

# Cサーバ
Host serverC
    Hostname satou-test.co.jp
    Port 48912
    User satou

~/.ssh/config の各パラメータの意味は以下のとおりです。他にもパラメータがありますが、今回はある程度必要なものだけを記載しています。

パラメータ 内容
Host 接続したいサーバのホスト名のエイリアス
HostName 接続したいサーバのドメイン、もしくはIPアドレス
Port ssh接続のポート番号(デフォルトは22番)
User ssh接続のユーザ名
IdentityFile (鍵認証を行う場合)秘密鍵ファイルのパス

サーバへの接続
#

~/.ssh/config の設定が完了すると、サーバへ接続する場合は先程設定したHostのエイリアスを使って以下のように接続できます。

サーバAに接続する場合

Terminal
ssh serverA

サーバBに接続する場合

Terminal
ssh serverB

サーバCに接続する場合

Terminal
$ ssh serverC

終わりに
#

今回は、~/.ssh/config によってssh接続の管理しました。これで、サーバが何台あろうと秘密鍵がサーバごとにあろうと簡単に接続できます。

関連記事

sshの鍵認証設定
··2 分
Arch-Linux Ssh
sshの基本設定
··1 分
Arch-Linux Ssh
Arch Linux のインストール方法
··2 分
Arch-Linux