CONNECTION & SECURITY / 03

SSH・SSL/TLS接続ガイド

接続経路と暗号化の違いを知り、ホスト・認証情報・証明書を順番に設定するためのガイドです。

Windows版 / Cuvel SQL 1.0.2の画面構成に基づく

SSHとTLSは、役割が異なります

直接接続はPCからDBサーバーへ接続する方式です。
TLSはDBとの通信を暗号化し、証明書で接続先を確認します。
SSLという名称が使われることもありますが、このガイドではTLSとして説明します。
SSHトンネルはPCからSSHサーバーまでの暗号化された経路です。
SSHサーバーから別のDBサーバーへ進む区間まで、SSHだけで保護されるとは限りません。

MySQL / TLS ↗ · PostgreSQL / TLS ↗

接続前に情報を分けて用意する

DBの種類、DBホスト、ポート、DBユーザー名・パスワードを確認します。
PostgreSQLではDB名も必要です。
SSHを使う場合は、これとは別にSSHホスト・ポート・ユーザー名とパスワードまたは秘密鍵を用意します。
SSHの標準ポートは22、MySQL系は3306、PostgreSQLは5432ですが、管理者やサービスが指定する値を優先します。

外部DBへ直接、TLSで接続する

接続ウィザードでDB情報を入力し、接続方法で「直接接続」を選びます。
外部ホストへの直接接続では暗号化設定が表示されます。
「自動(推奨)」は外部直接接続でTLSを使用します。
サービスがTLSを指定している場合は「TLSを必須」を選び、CAファイルの指定があれば選択してください。
ホスト名はサービスの指定どおりに入力し、証明書の名前と合わないIPアドレスへ置き換えないでください。
確認画面で接続先を確認して接続します。

直接接続のTLS設定とCA証明書の選択欄
直接接続のTLS設定とCA証明書の選択欄画面例:日本語 / バージョン1.0.0画像を別タブで拡大 ↗
CA証明書をローカルファイルから選択した状態
CA証明書をローカルファイルから選択した状態画面例:日本語 / バージョン1.0.0画像を別タブで拡大 ↗

SSHトンネルで接続する

接続方法で「SSHトンネル経由」を選び、次の画面でSSH情報を入力します。
DBユーザーとSSHユーザーは別物です。
DBがSSHサーバー内にある場合は通常設定を使います。
別のサーバーにある場合は「別の場合」の設定を開き、SSHサーバーから到達できるDBホスト・ポートを指定します。
直接接続の127.0.0.1は自分のPCですが、SSH内のDB接続先の127.0.0.1はSSHサーバー側を指します。
SSH使用時やローカル直接接続ではTLS設定欄が表示されない構成です。
SSH先から別DBへの区間にTLSが必要な場合は、現在の画面で設定できるかを確認し、不明なまま接続しないでください。

SSHサーバーとDBサーバーが異なる場合の接続設定
SSHサーバーとDBサーバーが異なる場合の接続設定画面例:日本語 / バージョン1.0.0画像を別タブで拡大 ↗

CA証明書と秘密鍵を取り違えない

CA証明書(例:ca.pem)はDBサーバーの証明書を確認するためのファイルです。
サービスから入手してPCに保存し、CA証明書欄のファイル選択から指定します。
URLそのものをファイルパスとして入力しません。
SSH秘密鍵はSSHログインに使います。
Windows・WSL・直接入力から実際の保存場所を選び、公開鍵(.pub)ではなく秘密鍵を指定します。
鍵にパスフレーズがある場合は入力します。
CA証明書を持っているだけではDBへログインできません。

WSL内のSSH秘密鍵を選択する画面
WSL内のSSH秘密鍵を選択する画面画面例:日本語 / バージョン1.0.0画像を別タブで拡大 ↗

初回の確認と、接続できないとき

初回のSSHホスト鍵確認では管理者が案内する指紋等と照合します。
証明書の警告も内容を読み、想定した接続先か確認します。
以前と鍵や証明書が変わった場合は、更新があったか管理者に確認してください。
タイムアウトや接続拒否ならホスト・ポート・接続元IP制限・ファイアウォールを、認証エラーならDB用とSSH用の情報を、証明書エラーならCAファイル・有効期限・PC時刻・ホスト名を確認します。
エラーを消す目的でTLSや証明書確認を無効にしないでください。

接続後は、対象のDBを確認する

接続できたら、DB/スキーマとテーブルを選んで内容を確認します。
SSHで接続できてもDBの認証や権限が正しいとは限りません。
最初は参照に必要な権限だけで確認し、接続設定とパスワードを保存するかを選びます。
最初からの操作は「はじめての接続」で確認できます。

接続前にSSH経由の接続先と入力内容を確認
接続前にSSH経由の接続先と入力内容を確認画面例:日本語 / バージョン1.0.0画像を別タブで拡大 ↗
はじめての接続 →
← ガイド一覧へ