Adobe社のウェブオーサリングツールである「Dreamweaver」では、ウェブサーバーに対してファイルを転送をするための「FTP機能」が標準搭載されています。
このFTPですが、暗号化がされていないと通信内容を傍受される危険があることから、通常は暗号化をした上で通信することが推奨されています。
今回は、この暗号化されたFTP通信の中でも「SSH」を利用した「SFTP」による通信の設定方法を解説いたします。公開鍵と秘密鍵のペアを生成し、サーバーへ認証できるようにします。
対象サーバーは人気のレンタルサーバー会社である「エックスサーバー」で行います。
※フリーの通信ソフトとして人気のWinSCPでの設定方法も解説しています。
通信プロトコル FTP、FTPS、SFTP、SCP
設定の前に、いくつか存在するFTP通信の種類について簡単に書いてみます。
FTP
「FTP【File Transfer Protocol】」とは、サーバーに対してファイルを転送するためのプロトコル(通信の約束事)です。
インターネット黎明期から存在しているファイル転送プロトコルで、現代でも多くの転送ソフトで実装はされています。ただ、古い時代に規格されたプロトコルのためセキュリティーに難があり、特にユーザー名やパスワードなどの情報も暗号化がされていないことから、ネットワーク上で通信を傍受されると容易に転送内容が流出してしまう危険性があります。
現代では、暗号化されたFTP通信である「FTPS」や「SFTP」「SCP」の利用が推奨されています。
https://www.kagoya.jp/howto/it-glossary/web/ftp/
FTPS
「FTPS【File Transfer Protocol over SSL/TLS】」は、「SSL」または「TLS」という暗号化技術を組み合わせてFTP通信を安全に行えるようにしたプロトコルです。
「SSL(Secure Sockets Layer)」と「TLS(Transport Layer Security)」は、ともにインターネット上の通信を暗号化するための仕組みです。この暗号化技術をFTP通信にも利用したものが「FTPS」で、サーバーと通信をするならば最低でもこの通信プロトコルを利用することが推奨されます。
暗号化のために必要となる「SSLサーバー証明書」は「認証局」と呼ばれるところから発行されており、正式な証明書がサーバー上で実装されていれば「SSL/TLS」が利用できます。
難しく書いていますが日常的なブラウジングでもお世話になっており、例えばURLの頭部分で「https」(あるいは鍵マークの表示)となっているウェブサイトがあれば、それは「SSL/TLS」によってサーバーと私たちクライアント側との通信が常に暗号化されている証拠で、途中で通信が傍受されても情報が流出しないようになっています。
近年のレンタルサーバーは無料でSSL/TLS通信(https化)できるようになっているところが多いですので、そこまで気負わずとも実装はできるかと思います。因みに、エックスサーバーでは無料でSSL設定ができます。このときの認証局はフリーの「Let’s Encrypt」です。
https://college.globalsign.com/ssl-pki-info/ssl-tls/
https://www.xserver.ne.jp/manual/man_server_ssl.php
SFTP
「SFTP【SSH File Transfer Protocol】」は、「SSH」という暗号化、認証技術を組み合わせてFTP通信を安全に行えるようにしたプロトコルです。
SSH【Secure Shell】は、暗号や認証の技術を利用して安全に通信するためのプロトコルです。暗号化されるという点では「SSL/TLS」と同じなのですが、SSHはサーバー管理者がサーバーへの接続のほか遠隔操作を行うことも想定しており、認証情報も含め通信全体を暗号化するなどよりセキュアな通信方法を目指して開発されています。
多くのレンタルサーバーでも利用できるようになっているかと思いますが、より強固な暗号化技術である公開鍵認証方式を利用するためには少し操作が必要になります。因みに、エックスサーバーはSSHのパスワード接続は禁止されており、公開鍵認証方式のみ許可しています。
また、「SSL/TLS」では必要だった「SSLサーバー証明書」が無くとも利用できること、SSHを利用しているのでコマンドによるサーバーの操作が可能であるなど、場合によってはこちらの方が運用しやすいこともあります。
今回の記事ではDreamweaverでの設定方法を解説いたしますが、このソフトウェアは「SFTP」の設定が可能です。ただ、秘密鍵は「OpenSSH形式」のみサポートしています。PuTTY形式には現状非対応なので注意。
https://www.kagoya.jp/howto/it-glossary/server/ssh/
SCP
SCP【Secure Copy Protocol】は、SFTPと同様に「SSH」を利用して通信を暗号化したプロトコルです。
SSHを利用しているのでセキュリティー的にはSFTPとほぼ同等です。機能的な違いはいくつかあるのですが、ここでは大体同じものと思っていただいて大丈夫です。
簡単な違いとしては、「SCP」の方が通信は早いようですがファイル転送に関してはあまり細かい動作をせず通信が途切れると続行できないこと、「SFTP」はファイル転送も重視しており通信の中断があっても途中から再開が可能など高機能ですが通信速度は少し遅め、と解説されていることが多いです。
Dreamweaverでは現状利用できませんが、フリーのFTP通信ソフトとして人気の高い「WinSCP」などでは利用できます。
https://atmarkit.itmedia.co.jp/ait/articles/0606/27/news135_2.html
Dreamweaverで「SFTP」による接続設定方法
Dreamweaverでは高機能な方の「SFTP」が利用できますので、当ウェブサイトで利用しているレンタルサーバーである「エックスサーバー」での設定方法を書いてみます。Dreamweaverのバージョンは「21.2」で行っています。
今回はSSHを最初に有効化させます。SSH設定の公式マニュアルは以下より確認できます。
https://www.xserver.ne.jp/manual/man_server_ssh.php
「エックスサーバー」にログインし、「トップページ」から「サーバー管理」を開きます。
サーバーパネル内の「SSH設定」を開きます。
「SSH設定」タブ内で状態を「ON」に変更し、「設定する」ボタンを押してSSHを有効化します。状態が「ON」になったのを確認してください。
また、ここで「SSH接続時のポート番号について」という注意書きがありますが、書かれている通り接続ポートが【10022】になることは覚えておいてください。後にこの番号を設定します。
「公開鍵認証用鍵ペアの生成」タブに移り、ここで「パスフレーズ」を設定します。
パスフレーズは任意のものを設定してください。パスフレーズはいわゆるパスワードのような役割を持っており、これを元にして公開鍵の鍵ペアを生成します。このため、パスフレーズを推測されないようなるべく複雑かつ長いフレーズを入力することが推奨されます。
設定するパスフレーズを忘れないよう、パスワード管理ソフトなどで厳重に管理してください。
パスフレーズを入力したら「設定する」ボタンを押してください。
確認画面に移ります。設定したパスフレーズとメモした内容に間違いなどが無いようでしたら「生成する」ボタンを押してください。
注意書きにもある通り、以前設定した公開鍵情報がある場合は設定が上書きされ、以前の秘密鍵では認証できなくなるので注意してください。
「サーバーID.key」というファイルがダウンロードされますので保存してください。
これが秘密鍵で、このkeyファイルとパスフレーズをセットにして設定することでサーバーへの認証が完了する仕組みになっています。仮にパスフレーズが合っていても、それに対応するサーバーの公開鍵、そしてセットで作られた手持ちの秘密鍵が無ければ公開鍵暗号の認証は通りません。
逆に言いますと、このファイルとパスフレーズが漏洩するとサーバーにSSH接続可能な状態になってしまうため、keyファイルも厳重に管理してください。
因みに、このキーは「OpenSSH形式」なのでDreamweaverは対応しています。もし別のソフトウェアでPuTTY形式のキーが必要になる場合は変換させてください。パスフレーズが分かれば変換可能です。
Dreamweaverを起動し、既存の接続設定を変えたい場合は「サイト」→「サイトの管理」を開いてください。新規に接続設定を作りたい場合は「新規サイト」でも大丈夫です。
既存のサイトがあるならばそれを開きます。
「サイト設定」の左にある「サーバー」を開き、右のリストから接続設定を開きます。新規で作成する場合は「+」ボタンで作成します。
下記のように設定してください。
サーバー名 | 任意。管理しやすいよう自由な名前で結構です。 |
---|---|
使用する接続 | 「SFTP」にします。 |
SFTPアドレス | サーバーのアドレス(ホスト名)を入力します。忘れた場合はサーバーパネルの「サーバー情報」や、「サブFTPアカウント」→「FTPソフト設定」から確認できます。 |
ポート | エックスサーバーの場合は指定された通り「10022」を設定してください。 |
認証 | 公開鍵暗号方式で認証するので「プライベートキーファイル」を指定します。 |
ユーザー名 | サーバーアカウント設定完了メールに記載のFTPユーザー名を入力します。忘れた場合はサーバーパネルの「サブFTPアカウント」→「FTPソフト設定」で確認できます。サブFTPアカウントを作成してそちらで接続したい場合はサブアカウントの方の情報を入力します。 |
IDファイル | ダウンロードした「.key」ファイルまでのパスを指定します。 |
パスフレーズ | 設定したパスフレーズを入力します。 |
ルートディレクトリ | 任意。アップロード先ドメインのドキュメントルート以下に設定するのが基本です。(例:/ドメイン名/public_html/) |
Web UR | 任意。通常は接続先のウェブサイトURLで大丈夫です。 |
https://support.xserver.ne.jp/manual/man_ftp_info_check.php
最後に「テスト」を押して通信テストを実施します。認証が通れば「DreamweaverはWebサーバーに接続されました」となり接続が完了します。
失敗する場合は接続設定を見直してください。特にエックスサーバーではポート番号を間違えやすい(一般的な22番ではなく10022番)ので注意します。
まとめ
お疲れさまでした。これでAdobe DreamweaverのSFTP接続設定を一通り書けたかと思います。
エックスサーバーの公式マニュアルでは「FTPS(FTP over SSL/TLSの方)」ならば解説があるのですが、SSHを使ったSFTPの解説は無かったので記事にしてみました。
「FTPS」がダメというわけでもなくちゃんと暗号化はされますので、利用したい方を使っていただければよいとは思いますが、SSHを利用したSFTP(SCP)の方がコマンドを利用できたりなど高機能で、特に「WinSCP」ではサーバー上のファイルを遠隔で圧縮できるなどサーバー操作ができるようになりますので、SFTP(SCP)の方が便利と言えば便利です。
ただ、秘密鍵の管理が別途必要になりますので、この点は注意していただければと思います。
因みに、今回はエックスサーバー上でパスフレーズを設定して鍵のペアを生成しましたが、FTPソフト側で公開鍵を設定した後にサーバーに登録、秘密鍵をダウンロードする方法もあります。「WinSCP」ではこの方法でもSCP通信ができますが、サーバー上にある既存の設定は上書きされますので注意してください。
参考サイト
https://support.xserver.ne.jp/faq/service_ftp_overssl.php
https://builtfunc.com/news/1712/
https://helpx.adobe.com/jp/dreamweaver/using/connect-remote-server.html#sftp_connections
コメント
コメント欄を開く