496
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

.ssh/configファイルでSSH接続を管理する

複数のサーバーを管理していると、毎回めんどくさい作業がSSH接続。
下記のように毎回、sshコマンドを入力しなければならない。

# ポート名を指定するケース
ssh ユーザー名@ホスト名 -p ポート番号

# 公開鍵認証のケース
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵のパス

# ポート名、公開鍵認証のケース
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵のパス -p ポート番号
オプション 内容
-i 秘密鍵を指定
-p ポート番号を指定
-l ログインユーザー名を指定

.ssh/configとは

SSHクライアントの設定ファイル。(リモートサーバーに接続する際に必要な設定ファイル)
SSH接続時の情報を定義しておくことで、sshコマンドのオプションを省略でき、コマンドオプションでは指定できない情報も設定できる。

.ssh/configの作成

ファイルがない場合は作成する。
.sshディレクトリのパーミッションを変更。

terminal
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ touch ~/.ssh/config

.ssh/configに記載

.ssh/config

# gehoAサーバー
Host gehoA
    HostName gehogeho.com
    User gehogeho
    IdentityFile ~/.ssh/test/gehogeho_a.key
    Port 20022
    TCPKeepAlive yes
    IdentitiesOnly yes

# gehoBサーバー
Host gehoB
    HostName gehogeho.com
    User gehogeho
    IdentityFile ~/.ssh/test/gehogeho_b.key
    Port 22
    TCPKeepAlive yes
    IdentitiesOnly yes

# gehoCサーバー
Host gehoC
    HostName gehogeho.com
    User gehogeho
    IdentityFile ~/.ssh/test/gehogeho_c.key
    Port 10022
    TCPKeepAlive yes
    IdentitiesOnly yes
キーワード 内容
Host ホスト名
HostName ホストのアドレスかIPアドレス
User ログインユーザ名
IdentityFile ログインするための秘密鍵のパス
Port ポート番号(デフォルトは22)
TCPKeepAlive 接続状態を継続したい場合:yes 継続しない場合:no
IdentitiesOnly IdentityFileが必要な場合:yes 必要ない場合:no
ServerAliveInterval 一定期間サーバからデータが送られてこないときに、タイムアウトする秒数。(例) 120

サーバーに接続する

AサーバーにSSH接続する場合

terminal
$ ssh gehoA

BサーバーにSSH接続する場合

terminal
$ ssh gehoB

CサーバーにSSH接続する場合

terminal
$ ssh gehoC
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
496
Help us understand the problem. What are the problem?