ブログやサイトを運営するために「
エックスサーバー
」を利用しているという方は、多いのではないかと思います。
エックスサーバーは、「国内シェアNo.1」を誇るサーバーホスティング事業者であり、個人から法人までさまざまなユーザーのニーズに対応したサービスを展開しています。
また、エックスサーバーでは、「サーバーパネル」から、現在ではウェブサービスに必須のSSLやWordPressの設定も契約したサーバーの設定を簡単に行えるようになっています。
しかし、サーバー内に新たな機能を追加するためには、CUIの存在が欠かせないのが現状です。そこで、CUIでサーバーを操作するためのコマンドラインツールが必要になります。
Macであれば「ターミナル」が標準で搭載されていますが、Windowsの「コマンドプロンプト」だと使い難い、と感じている方も多いと思います。
今回は、コマンドラインツールの「Cygwin」を利用して、WindowsからエックスサーバーにSSH接続する方法を見てみたいと思います。
SSHの設定方法
エックスサーバーでは、SSHで接続できるようにする前に、まず、サーバー側の設定を行います。
エックスサーバーが、ウェブサイトとして提供している「サーバーパネル」内で、サーバー側の設定を行うことができます。
サーバーパネルでSSHの有効化
まず、SSHを接続できるように有効化する設定を行います。
「サーバーID」と「サーバーパネルパスワード」を入力して、「
サーバーパネル」にログインします。

次に、「SSH設定」という項目を見つけて、そこをクリックします。

そして、SSH設定画面に遷移したら、「SSH設定」タブをクリックし、「変更」欄の「ONにする」というラジオボタンを選択します。

これで、SSH接続の有効化の設定は、完了です。
公開かぎの生成
パスワードを入力せずにSSH接続するために、公開かぎの生成を行います。
実は、エックスサーバーでは、パスワード認証によるSSH接続を行うことはできません。必ず、公開かぎを使用してSSH接続する仕様になっているため、サーバーパネルで公開かぎを生成できる機能が用意されています。
ここで、簡単に公開かぎについて説明します。エックスサーバーでは、サーバーパネルで公開かぎの生成を行うと、契約したサーバー内に自動で秘密かぎが生成されるようになっています。
その秘密かぎと公開かぎは相互に対応しているため、契約したサーバーにSSH接続できるのは、契約した本人のみということになります。
こちらも、「
サーバーパネル」に入ったら、「SSH設定」から「公開鍵認証用ペアの生成」タブを開きます。
その後、「パスフレーズ」を入力し、「確認画面へ進む」を押します。パスフレーズは、好きな文字列を入力すれば大丈夫です。

すると、画面の一部が遷移し「生成する」ボタンが出現するため、そのボタンを押し、公開かぎの生成は完了です。

最後に、公開かぎのファイル("サーバーID".key)が、ダウンロードされます。このダウンロードされた公開かぎのファイルを、コマンドラインツール(Cygwin)の「~/.ssh」ディレクトリ内に保存します。
Cygwinのインストール方法については別の記事で解説します。Cygwinのインストールが済んでから、次の章に進んでみてください。
CygwinでSSH接続する設定方法
Windowsには「コマンドプロンプト」というコマンドラインツールが予め備えられていますが、コマンドの種類がLinuxのシェルとは違うため、使い難いと感じる方も多いと思います。
そこで、WindowsでもシェルのコマンドでCUI操作を行いたいユーザーにおすすめなソフトウェアが、このCygwinです。
この章では、Cygwinを使ってエックスサーバーにSSH接続する方法について紹介します。
以下のCygwin公式サイトのダウンロードリンクからソフトウェアをダウンロードできます。もし、インストールしていない場合は、ダウンロードしてみてください。
Cygwinのダウンロード
.sshディレクトリの作成
Cygwinのホームディレクトリ内に「.ssh」ディレクトリを作成し、このディレクトリに公開かぎファイルを移動します。
この.sshというディレクトリは、SSHの設定ファイルや公開かぎを保存するために使用します。
なお、Cygwinに限らず、ほとんどのコマンドラインツールでは、SSH接続用のディレクトリとして「.ssh」という名前が使われています。
まず、Cygwinを起動し、ホームディレクトリに移動します。
user@user-PC
$ cd ~
次に、「mkdir」コマンドで、.sshディレクトリを作成します。
user@user-PC
$ mkdir ./.ssh
前章で、ダウンロードした公開かぎのファイル("サーバーID".key)を.sshディレクトリに移動します。

「mv」コマンドで、公開かぎのファイル名を「id_rsa」変更します。
user@user-PC
$ mv ./.ssh/serverid.key ./.ssh/id_rsa
または、GUIでファイル名のところをクリックして名前を変更してもかまいません。その際に、拡張子について確認のウィンドウが出現しますが、そのまま「はい」のボタンを押してしまって大丈夫です。

そして、「chmod」コマンドを使用して、.sshディレクトリは「700」に、公開かぎファイルは「600」に、パーミッションをそれぞれ変更します。
user@user-PC
$ cd ./.ssh/
user@user-PC
$ chmod 700 .
user@user-PC
$ chmod 600 ./id_rsa
これで、.sshディレクトリの作成と公開かぎの移動は完了です。
.sshディレクトリに設定ファイルを作成
.sshディレクトリ内に設定ファイルを作成します。
ファイル名は、「config」で、拡張子なしで作成します。
user@user-PC
$ cd ./.ssh/
user@user-PC
$ vi ./config
設定ファイル内には「Host」、「HostName」、「User」、「Port」そして「IdentityFile」の各種項目を記述します。
Host hogehoge
HostName sv??????.xserver.jp
User serverid
Port 10022
IdentityFile ~/.ssh/id_rsa
「Host」は、好きな名前をつけてしまってかまいません。ここでは、「hogehoge」とします。
「HostName」には、エックスサーバー上での「svサーバー番号.xserver.jp」という形式のホスト名を入力します。
「User」には、エックスサーバー上での「サーバーID」を入力します。
「Port」には、「10022」番を入力します。エックスサーバーでは、SSH用のポートとして10022番が割り当てられているため、その他のポート番号でSSH接続することはできません。
そして、「IdentityFile」には、「~/.ssh/id_rsa」と入力します。これは.ssh内にあるid_rsaという名前の公開かぎファイルを認証に適用させる、という意味になります。
これで、設定ファイルの作成は完了になります。
サーバーにSSH接続する
ここでは、実際にSSHでエックスサーバーに接続してみます。
Cygwinを起動してから「ssh hogehoge」と入力し、SSH接続を実行します。「hogehoge」は、前述の設定ファイルで記述したHostで指定した名称です。
user@user-PC
$ ssh hogehoge
SSH接続を実行すると、「Are you sure you want to continue connecting (yes/no)?」と訊かれるため、「yes」と入力します。
その後、「Enter passphrase for key」と訊かれたら、公開かぎを生成したときに入力したパスフレーズを入力します。
user@user-PC
$ ssh hogehoge
The authenticity of host '[sv????.xserver.jp]:10022 ([xxx.xxx.xxx.xxx]:10022)' can't be established.
ECDSA key fingerprint is SHA256:????????????????????????????????????.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[sv????.xserver.jp]:10022,[xxx.xxx.xxx.xxx]:10022' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/user/.ssh/id_rsa':***********
Cygwin画面で、以下のような表示に変わったら、SSH接続は成功です。
Last login: Fri Jul 20 00:00:00 2019 from hogehogebank.net
[serverid@sv???? ~]$
これで、Cygwinを使ったエックスサーバーへのSSH接続設定は完了となります。
最後に
今回は、Windowsで、エックスサーバにSSH接続する方法について紹介しました。
エックスサーバーで、ブログやアフィリエイトサイトを始める分には、CUIでSSH接続をする必要なく、サーバーパネルでの操作だけで完結できるため、非常に使い勝手のいいサービスになります。
しかし、もう少し特殊なウェブサービスを実行する場合は、どうしてもSSH接続をお行う必要が出てくるでしょう。
本記事が、これからエックスサーバでウェブサービスを展開する準備をしている方の参考になれば幸いです。
それでは次回にまたご期待を!