先日、FileZillaでエックスサーバーにSFTP接続する方法を書きました。
「なぜFTPがあるのに、SFTP接続するのか?」などは、上記の記事を参照してください。
それはさておき、Windowsを使用している僕は、個人的にFileZillaよりは、WinSCPの方が、使い勝手が良いので、普段から利用しています。
それは、以下のように、サーバー上のファイルを直接編集できるエディターを自由に何個も設定できるからです。
本来なら、ローカルでテストした後にアップロードした方が良いのですが、簡単な編集なら、ついつい楽なので直接編集してしまいます。
というわけで、今回は、エックスサーバーにWinSCPでSFTP接続する方法を紹介したいと思います。
前回の、FileZillaの方法では、公開鍵認証用の鍵ペアは、エックスサーバー側で作成していました。けれど、今回は自前で作成し、公開鍵をエックスサーバーに登録する方法を紹介したいと思います。
ちなみに、エックスサーバーについての詳細は以下。
目次
主な手順
エックスサーバーで、SFTPを利用するのに必要な主な手順は以下です。
- エックスサーバー側でSSHの利用を有効にする
- 暗号化するための鍵を作成する
- エックスサーバーに公開鍵を登録
- WinSCPでサーバー設定をする
今回は、公開鍵と秘密鍵の鍵のペアをこちらで作成した上で、WinSCPを利用した、SFTP接続の方法を紹介したいと思います。
SSHの利用を有効にする
まずは、エックスサーバーでSFTPを利用するために、SSHの設定を有効にします。こちらの手順は、前回のFileZillaの方法と変わりません。
とりあえず、エックスサーバーのサーバーパネルに移動してログインしてください。
すると、以下のような管理パネルが表示されるので、「SSHの設定」をクリックします。
すると、以下のような「SSH設定」画面が表示されるので、「ONにする」ボタンを押して、SSHの設定を有効にしてください。
ボタンを押すと、次のような画面が表示されます。もう一度、「SSH設定」タブをクリックします。
以下のように、状態が「ON」になっていれば設定は完了です。
あと、通常SSHでの接続ポートは22を使うのが一般的ではありますが、エックスサーバーではおそらくセキュリティー性を高めるため10022ポートを利用しているのだと思います。
暗号化するための鍵を作成する
次に、SSH接続に必要な、公開鍵認証用の鍵ペア(公開鍵・秘密鍵)を生成します。
前回は、エックスサーバー側で作成しましたが、今回はローカル側で作成して、公開鍵をエックスサーバー側に登録する方法を行ってみたいと思います。
まずは、WinSCP – 窓の杜ライブラリからWinSCPファイルをダウンロードします。
一応、公式のWinSCPサイトもあるのですが、窓の杜のファイルを利用した方が、デフォルトで日本語化されているし、鍵の生成に必要なソフトもバンドルされているので、初期設定が楽です。
WinSCPをダウンロードしたら、実行して、セットアップを行います。
セットアップは、普通に「次へ」と押していけばOKですが、途中の「インターフェーススタイル」は、Windowsを使い慣れている方ならば、「エクスプローラー」を選択した方が使いやすいかと思います。
インストールが終わると、以下のような画面が表示されます。自前で、鍵を作成するには「ツール」ボタンを押します。
すると、以下のようなメニューが表示されるので、「PuTTYgenを実行」を選択します。
PuTTYgenとは、公開鍵と秘密鍵を作成するためのソフトです。
PuTTYgenを起動すると、以下のような画面が表示されるので「Generate」ボタンを押します。
すると、鍵の作成に必要な乱数を発生させるためにKeyの枠内でマウスを適当にグリグリ動かします。
マウスを動かして、ゲージが溜まると以下のような鍵が生成されます。
これらの中で、利用するのは以下の部分です。
- 公開鍵
- パスフレーズの入力欄(今回は使用しないけど)
- 秘密鍵保存ボタン
①の公開鍵は、後でエックスサーバーに登録します。
②の、パスフレーズは、設定すると多少セキュリティーは向上しますが、家でプライベートに使用していて、パソコンを共有していない場合は、そこまで必要ないかと思い、今回は設定しません。(設定すると、毎回パスフレーズの入力を求められるので面倒くさいのもあります。)
③の秘密鍵は、ローカルに保存して、WinSCPに登録し、毎回その秘密鍵を利用してサーバーにSFTP接続します。
とりあえずは、秘密鍵をパソコン内の任意の場所に保存しておきます。「Save private key」を押すとダイアログが表示されるので、自分の覚えやすい場所に保存しておいてください。
とりあえず、好きな名前をつけて、.ppkファイルとして、任意の場所に保存します。
エックスサーバーに公開鍵を登録する
あとは、先程作成した公開鍵をエックスサーバーに登録します。
まずは、サーバーパネルからログインしてください。そして「SSHの設定」をクリックします。
今回は、こちらで作成した公開鍵をエックスサーバーに登録するので「公開鍵登録・設定」タブをクリックします。
すると、以下のような公開鍵入力欄が表示されます。
ここで、先程PuTTYgenで作成した、公開鍵をコピーします。
コピーした、公開鍵を入力欄にペーストして、「公開鍵を登録する(確認)」ボタンを押します。
すると、以下のような確認画面が表示されるので、もう一度「公開鍵を登録する(確定)」ボタンを押します。
以下のようなメッセージが出れば、登録は完了です。
公開鍵の登録を完了しました。
WinSCPでサーバー設定をする
最後に、サーバー設定を行うとSFTPでエックスサーバーに接続できるようになります。
先程のWinSCP起動初期画面に以下のように必要な情報を入力します。
- 転送プロトコル:SFTP
- ホスト名:サーバーID.xsrv.jp(FTPのホストと同じ)
- ポート番号:10022
- ユーザー名:サーバーID(サーバーパネルにログオンする時のID)
- パスワード:パスワード(FTPのパスワード)
設定が完了したら「設定」ボタンを押してください。
そして、「認証」を選択し、先程保存した「秘密鍵」ファイルを選択したら「OK」ボタンを押します。
これらの設定が終わったら、「保存」ボタンを押してください。
すると、以下のような「セッションの保存名」ダイアログが表示されるので、名前をつけて「OK」ボタンを押します。
毎回パスワードを入力するのが面倒くさい場合は非推奨ではありますが、「パスワードを保存」にチェックをつけてください。
登録が完了したら、以下のような画面が表示されます。
「ログイン」ボタンを押せば、エックスサーバーにSFTP接続して、ファイル操作などをすることができるようになります。
まとめ
エックスサーバーにWinSCPでSFTP転送を行うには、このような手順が必要です。(鍵のペアを自前で作成する場合)
FTPよりは、初期設定に多少の手間がかかりますが、登録してしまえば、あとの使い方は同じです。
WinSCPは、Windowsのエクスプローラーに似た操作性なので、Windowsユーザーには、かなり使いやすくなっていると思います。また、サーバー上のファイルを手軽に編集できるような工夫が随所にあって、個人的には手放せないソフトの一つです。
エックスサーバーとWinSCPと、SFTPを利用すれば、手軽に、安全にサーバー上のファイルを編集できるようになるのではないかと思います。
あと、FTPではうまくサーバーに接続できない(時々原因不明ではじかれる)なんて時に、SFTPにすると接続できるようになる、なんてことがあるかもしれません。実際に、以前僕もそのようになりました。ちょっと、なんでかはわからないんですけど。
ありがとうございます。WinSCPでSFTP転送をすることができました。