mixhostのレンタルサーバーで遊ぶ その3: SSHで接続する

前回はレンタルサーバーmixhostの初期設定を紹介しました。

今回はmixhostのコンソール(ターミナル)につなげるためにSSHでの接続を試したいと思います。

作業はmixhostのcPanelを利用します。cPanelの使い方は前回の記事を参照してください。

SSHの鍵認証とは

mixhostではSSHの認証方式として鍵認証方式のみサポートしています。

鍵認証方式はパスワードではなく、”正当な認証キー(実際にはファイル)”を持っているかどうかで接続の許可不許可を決める方式です。

一般的には、秘密キーと公開キーのペアを作成します。この鍵のペアには「公開キーで暗号化をしたデータはペアとなる秘密キーでしか解読できない」という特徴があるのがポイントです。

鍵のペアを作成したら、サーバ側に公開キーをクライアント側に秘密キーを持つようにします。

SSHのサーバはあるユーザに対して接続の要求があると、あるランダムなメッセージをそのユーザの公開キーで暗号化して、接続要求元に送信します。接続要求元は送られてきたメッセージを秘密キーで解読してサーバに送り返します。

サーバは送ったランダムなメッセージと接続元から送り返されたメッセージが一致した場合に限り、正しい接続相手(=正しい秘密キーを持っているユーザ)として認めます。

厳密には異なるかもしれませんが、大体こんな感じです。

SSHクライアントの入手

Linuxの場合は多くの場合はSSHクライアント(OpenSSHクライアント)は導入されていると思います。もしsshコマンドが使えない場合は、openssh-clientパッケージを導入してください。Ubuntu/Debianなら下記のコマンドを実行します。

sudo apt-get install openssh-client

Windowsの場合は何らかのSSHクライアントをインストールする必要があります。私のお勧めはPuTTYです。日本語対応したビルドが公開されているので、下記から最新版を取得してインストールしましょう。

インストールはダウンロードしたファイルを展開して中身をすべてどこかのフォルダに置けばOKです。

認証キー(公開キー・秘密キー)の生成

mixhostのcPanelではSSHの認証キーを生成する機能があります。

まずcPanelのセキュリティにある「SSHアクセス」を選択します。

SSHアクセスを選択

これで「SSHアクセス」という画面になるので「キーの管理」を選択します。

SSHキーの設定を選択

これでSSHキーの管理という画面に切り替わります。SSHでのアクセスには公開キーと秘密キーのペアが必要で、この画面ではこれらのキーを生成することができます。

画面上の方の「新しいキーの生成」を選択します。

新しいキーの生成を選択

これで認証キーを生成する画面になります。

この画面ではキーのパスワード(SSH接続するときに入力します)を2箇所入力して「キーの生成」を選択します。

キーの生成

なお「Key Name」の部分はデフォルトのままで問題ありませんが、複数のキーを生成する場合はキーの判別をできるように名前をつけておいた方が良いでしょう。

SSHの認証キーはクライアント毎に分けておくことをお勧めします。

クライアント毎に分けておけば、万が一認証キー(秘密キー)が流出してしまった場合でも、流出した秘密キーだけ無効にすれば他のクライアントには影響せずに対処ができます。

キーの生成に成功すると次のような画面になります。

キーの生成完了

キーの生成に成功したら「戻る」を選択します。

これで「SSHキーの管理」に戻ります。公開キーの欄に先ほど作成したキーが追加されていますが、認証ステータスは「not authorized」となっているはずです。これはまだこの認証キーが使えないことを示しています。

公開キーの管理

ここで作成した公開キーの「設定」を選択すると次のような画面になります。

キーのAuthorize

この画面で「Authorize」を選択すれば、このキーが使えるようになります。

キーのAuthorize成功

これでサーバーに格納してある公開キーは使えるようになりましたが、SSHで接続するためにはペアとなる秘密キーをクライアントに設定する必要があります。

これは次で紹介します。

クライアント用秘密キーの取得

cPanelで認証キーを生成したら秘密キーをダウンロードします。

SSHキーの管理の画面で秘密キーの「表示/ダウンロード」を選択します。

表示/ダウンロードを選択

これで秘密キーが表示されます。

生成された秘密キー

クライアントにOpenSSHを使う場合

Linuxなどを使っていてクライアントにOpenSSHを使う場合は「キーのダウンロード」を選択します。

生成された秘密キーのダウンロード

これでキーの名前のフィあるがダウンロードできるので保存します。

ダウンロードしたファイルの保存

このダウンロードしたファイルはホームディレクトリの「.sshディレクトリ」に移動させます。.sshディレクトリに同じ名前のファイルがある場合は、名前を変えて移動しましょう。私は同じ名前のファイルがあったのでファイル名をmixhostの変えました。

mv id_rsa ~/.ssh/mixhost

移動したらパーミッションを「0600」に変えておきます。

chmod 0600 ~/.ssh/mixhost

これでOpenSSH用に秘密キーを用意できました。

クライアントにPuTTYを使う場合

PuTTYの場合は秘密キーをPPK形式というファイルで取り扱っています。

このPPK形式で秘密キーをダウンロードするために認証キーを生成するときに設定したパスワードを入力して「変換」を選択します。

認証キーのパスワードを入力

これでPPK形式のキーが表示されます。ダウンロードするために「キーのダウンロード」を選択しましょう。

PPK形式のダウンロード

これで秘密キーがダウンロードできますのでPuTTYをインストールしたPCに保存しておきましょう。

ダウンロードしたファイルの保存

このファイルはどこにおいても構いません。今回はとりあえずドキュメント(通常はC:\Users\Windowsのユーザ名\Documents)に保存しておきました。

これでPuTTY用に秘密キーを用意できました。

SSHでの接続

サーバ側に公開キーを、クライアント側に秘密キーを用意できたのでいよいよ接続です。

接続するための情報は下記になります。

ホスト名自分のドメイン
ユーザ名cPanelのユーザ名
パスワード認証キー生成時に入力したパスワード

ホスト名とユーザ名がわからない場合はcPanelの一般情報で確認しておきましょう。

サーバの情報

クライアントにOpenSSHを使う場合

LinuxなどでクライアントとしてOpenSSHを使う場合は「ssh」コマンドを利用します。このとき「-i」オプションで秘密キーを、「-l」オプションでユーザ名を指定するのがポイントです。

$ ssh -i .ssh/mixhost -l ユーザ名 ホスト名

初回は次のように表示されるので「yes」と入力します。

The authenticity of host 'ホスト名 (IPアドレス)' can't be established.
ECDSA key fingerprint is SHA256:******************************************.
Are you sure you want to continue connecting (yes/no)?

次にパスワードを聞かれるので認証キーを生成するときに設定したパスワードを入力します。

Enter passphrase for key '.ssh/mixhost':

正しく入力すればこれで接続に成功するはずです。

クライアントにPuTTYを使う場合

WindowsなどでクライアントにPuTTYを利用する場合はPPK形式の秘密キーファイルをSSHの設定で指定するのがポイントです。

PuTTYを起動すると「PuTTY設定」という画面が開きます。まずホスト名を入力し、接続タイプがSSHになっていることを確認します。

ホストと接続タイプの設定

次に左側のツリーから接続のところにある「データ」を選択し、「自動ログインのユーザ名」のところにユーザ名を入力します。

ユーザ名の設定

つづいて左側の「SSH」の前の「+」を選択してツリーを開き、「認証」選択します。そして「認証のための秘密鍵ファイル」にダウンロードしたPPK形式の秘密キーを設定します。

秘密キーの設定

最後に左側で「セッション」を選んで保存済セッション一覧のところにわかりやすい名前(例えばmixhost)を入力して「保存」を選択します。

セッションの保存

これでmixhostにSSH接続するための設定が保存されました。

あとはセッション一覧から保存したセッションを選んで「開く」を選択します。これでmixhostとSSH接続を開始します。

初回は次のような表示が出るので「はい」を選択します。

サーバのフィンガープリントの確認

次のようにパスフレーズが要求されたら認証キーを生成するときに設定したパスワードを入力します。

認証キーのパスワードの入力

正しく入力すればこれで接続に成功するはずです。



まとめ

今回はmixhostのレンタルサーバにSSHで接続してみました。

mixhost伸す衣装する方法ではmixhostのコントロールパネル(cPanel)で公開キー・秘密キーのペアを生成して秘密キーをダウンロードすることになります。

ダウンロードした秘密キーをSSHクライアントに設定すればSSH接続を行うことができます。

次回はクライアントで生成した認証キーを使う方法を紹介します。