WindowsでCygwinを使ってエックスサーバーとSSH接続をする

★気に入ったらシェアをお願いします!

phones

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Windowsマシンに本番環境と超簡単に同期できるWordPressのオススメローカル環境を作っています。

前回はこちらの記事で、Cygwinという開発ツール群をインストールしました。

さよならコマンドプロンプト!UNIXコマンドをWindowsで実行すべくCygwinを導入
Windowsでおなじみに黒い画面「コマンドプロンプト」では扱えないコマンドを使う必要が出てきまいた。今回はCygwinというUNIXコマンドを実行できる黒画面&ツール群を導入する方法をお伝えします。

今回はそのCygwinを使って、WindowsマシンでのエックスサーバーとのSSH接続を試していきたいと思います。

目指すWindows向けWordPressローカル環境についておさらい

これまでのシリーズで

  • ViutualBoxとVagrantでローカルPC内の仮想開発環境を構築した
  • VCCWを使ってWordPress用ローカル環境を構築した

とここまで進めています。

なんだ、もうWordPressローカル環境はできてるじゃん、と思われるかもしれませんが、そうじゃないんです。

VCCWによってインストールしたツール群にWordMoveという超簡単に本番環境との同期をするツールがあるのですが、WordMoveではローカルと本番の接続にFTPという方法か、SSHという方法かどちらかを使います。

しかしFTPだと

FTPやTelnetだと通信内容は暗号化されず,そのまま(平文)で送られるため,通信経路を盗聴されるとアカウントやパスワードが簡単に盗まれてしまう
引用:Webデザイナーなら知っておくべき サーバ知識相談室

というデメリットもあるため、SSHを使うほうが好ましいわけです。

ということで、今回は一つの例として本番として利用しているエックスサーバーと、ローカルPCとのSSH接続を試していこうというわけです。

SSH接続のための公開鍵と秘密鍵を用意する

先ほどFTPではデータが平文で送られてしまうというお話をしましたが、ということはSSHでは平文ではなくて暗号化されて送られるというわけですよね。

SSHでファイル転送をする際には送る側では暗号化をして、受け取る側では復号化をするわけです。

その暗号化・復号化をするために、今回の場合はローカルPC側に秘密鍵、本番サーバー側に公開鍵という一対の鍵を用意しておく必要があります。

ssh-keygenコマンドで鍵を生成する

その鍵を作るコマンドがssh-keygenコマンドです。Cygwinのインストールの際に、opensshというパッケージを入れていれば使えます。

これで実行です。

ssh-keygenでSSHの鍵を生成する

まず「Enter file in which to save the key」と聞かれますが、これはデフォルトのままでOKですのでそのままEnterします。

今回のデフォルトは「/home/Noriaki/.ssh/id_rsa」だそうです。

次に「Enter passphrase」つまり「パスワードを入れなさい」と指示されます。2回尋ねられるので、同じパスワードを都度入力して下さい。

すると、デフォルトフォルダつまり「C:cygwin64/home/Noriaki/.ssh」フォルダ内に、id_rsaとid_rsa.pubというファイルが出来上がっています。

SSH接続の秘密鍵と公開鍵が生成された

秘密鍵のパーミッションを変更する

これがコマンドプロンプトを捨ててCygwinを使わなければいけない理由だったのですが、秘密鍵であるid_rsaのパーミッションを変更しなければなりません。

何もせずにSSH接続をしようとすると

Permissions 0660 for ‘id_rsa’ are too open.

というエラーが発生します。

パーミッションというのはそのファイルのアクセス権のことを言うのですが、その設定を変えないとSSH接続ができないということです。

しかしながら、コマンドプロンプトにはそもそもこのパーミッションを変更するコマンドが実装されていないので、UNIXコマンドを実行できるCygwinを導入したというわけです。

(ここも超ハマったポイントでした…)

Cygwinであればサクっと

これでSSH接続ができるパーミッションの設定になります。

id_rsaのほうが秘密鍵ですので、これでローカル側の秘密鍵の準備は完了ということになります。

エックスサーバーに公開鍵を登録する

では公開鍵を本番サーバーであるエックスサーバーに登録していきます。

エックスサーバーはSSH接続のための公開鍵を登録する画面を用意してくれていまして、新設ですね。

サーバーパネル内のSSH設定を選択します。

エックサーバーのサーバーパネル

SSH設定で「ONにする」をクリックして状態をONにします。

エックスサーバーでSSH接続をONにする

次に「公開鍵登録・設定」タブの公開鍵欄に先ほど作成したid_rsa.pubの内容を貼り付けして、「公開鍵を登録する」を押下します。

エックスサーバーでSSH接続の公開鍵を登録する

id_rsa.pubはテキストエディタで開いて内容をコピーしましょう。

これでエックスサーバーへの公開鍵登録は完了です。

SSH接続を実行

これでSSH接続をする準備は整いました。

接続をするコマンドは

ssh ユーザー名@ホスト名 -p 接続ポート

で行けます。エックスサーバーの場合は

  • ホスト名:サーバーID.xsrv.jp
  • ユーザー名:サーバーID
  • 接続ポート:10022

ですから

とすればOKです。

これで無事にエックスサーバーとのSSH接続が完了しました。

エックスサーバーとSSH接続できた

まとめ

これにてエックスサーバーとローカルPCとのSSH接続ができるようになりました!

さくっと書いてますが、ハマりにハマって大変だったんですよ…Windowsの場合はコマンドプロンプトを使わないようにどうぞお気を付け下さい。

次回はいよいよWordMoveでの同期を試していきたいと思います。

WordPress本番環境とローカル環境を超簡単に同期するWordMoveの設定&使い方
Vagrant、VCCW、Cygwinなどを駆使してWindows内にWordPressのローカル環境を作っています。今回じゃローカルと本番を簡単に同期するWordmoveの設定と同期をしていきます。

どうぞお楽しみに!

連載目次:超簡単に本番と同期!WordPressおすすめローカル環境

  1. 超簡単に本番と同期できるWordPressおすすめローカル環境構築までの道のり
  2. VirturalBox&VagrantでローカルPC内に仮想開発環境を構築する
  3. VCCWによるWordPress用ローカル環境構築&ハマりやすいポイント
  4. さよならコマンドプロンプト!UNIXコマンドをWindowsで実行すべくCygwinを導入
  5. WindowsでCygwinを使ってエックスサーバーとSSH接続をする
  6. WordPress本番環境とローカル環境を超簡単に同期するWordMoveの設定&使い方