【Xserver】エックスサーバーにssh接続

フロー

SSH接続の基本フロー 1. コマンド実行: ssh [設定名] 2. ~/.ssh/config から設定を自動読み込み 3. 秘密鍵の自動読み込み 4. 公開鍵認証による自動接続

手順

フォルダ構成

~/.ssh/
│
├── config            # SSH接続設定ファイル(テキスト)
│                    # 複数サーバーの接続設定を記述可能
│
├── id_rsa           # 秘密鍵
│                    # 権限: 600(所有者のみ読み書き可)
│                    # 絶対に共有しない
│
├── id_rsa.pub       # 公開鍵
│                    # 権限: 644(所有者は読み書き可、他者は読み取りのみ)
│                    # サーバーに登録する
│
└── known_hosts      # 接続したことのあるサーバーの情報
                     # 初回接続時に自動生成

configファイルの例

# デフォルトの設定(すべてのHostに適用)
Host *
    # タイムアウトを設定(秒)
    ServerAliveInterval 60
    # 圧縮を有効化
    Compression yes

# 開発サーバーの設定例
Host dev
    # サーバーのホスト名またはIPアドレス
    HostName dev.example.com
    # SSHのポート番号(デフォルトは22)
    Port 22
    # ログインするユーザー名
    User developer
    # 使用する秘密鍵の場所
    IdentityFile ~/.ssh/id_rsa

# ステージングサーバーの設定例
Host stg
    HostName stg.example.com
    Port 22
    User deployer
    # 別の秘密鍵を使用する例
    IdentityFile ~/.ssh/staging_key

# 本番サーバーの設定例
Host prod
    HostName prod.example.com
    # セキュリティのため別ポートを使用
    Port 10022
    User production
    IdentityFile ~/.ssh/production_key
    # パスワード認証を無効化
    PasswordAuthentication no

~/.ssh/id_rsaの秘密鍵は以前作成したものを使いまわします

公開鍵をXserverの管理画面で登録

公開鍵を張り付ける

id_rsa.pub が公開鍵ファイルになります。このファイルの内容をXserverの管理画面にコピー&ペーストすることで、先ほどの秘密鍵(id_rsa)と対応する公開鍵認証が設定されます。

.ssh/configファイルを使ってssh接続できるようになります:

ssh xserver

SSHコマンドが設定ファイルの読み込みから認証まで、多くのことを自動的に処理してくれます。