トップページ > 対応事例

自宅サーバ構築MY HOME SERVER

サーバファイル転送(WinSCP) WinSCP用秘密鍵の作成 WinSCPインストール WinSCP操作方法 ファイル転送時の注意点

- サーバファイル転送(WinSCP) -

ホームページ作成のためにhtmlファイルをサーバにアップロードしたり、外出先からサーバにデータを送ったり、データを取り込んだりするときに便利なのがFTPソフトです。しかし FTPによる通信は暗号化されてないため、パスワードやデータが平文で流れてしまい、盗聴・改ざんの危機にさらされています。

そこでSSH暗号化方式により、サーバとクライアントPC間でファイルのやり取りが出来るフリーのソフトWinSCP をインストールします。OpenSSHサーバはすでに稼動しているはずですので、 同じ22番ボートを使用します。サーバのiptablesでは22番ポートが開放されているはずですから、外出先からアクセスするためにはルータの22番ポートも開放する必要があります。
(22番ポートはSSH接続用ポートとして広く知れ渡っています。セキュリティの関係上、別に22番ポートでなくても構いません。例えば20345とか。ポート番号を 変更した場合、Tera Termのログイン時のポート番号もあわせる必要があります。後はサーバ側のファイアウォール及ぶルータのポート開放もします。)



- WinSCP用秘密鍵の作成 -

WinSCPでも秘密鍵を使った通信が出来るようにします。すでにSSH接続時に作成した秘密鍵(id_dsa)が必要です。その秘密 鍵を使ってPuTTYgenというソフトで、hogehoge.ppk に変換します。この変換された秘密鍵がWinSCP用の秘密鍵です。

まずはPuTTyダウンロードページ よりPuTTYgen.exeをダウンロードします。 インストール後、PuTTygenを起動します。「SSH-2DSA」を選択して、「Load」をクリックします。
1.jpg(29233 byte)

SSH接続時使用する秘密鍵(id_dsa)の保存場所を指定して、「ファイルの種類」をAll Files (*.*) にします。 「id_dsa」を選択して「開く」をクリックします。
2.jpg(39355 byte)

SSH接続時に使用するパスフレーズ(パスワード)と同じパスフレーズを入力します。
3.jpg(8038 byte)

「OK」ボタンを押します。
4.jpg(13529 byte)

「Save private key」をクリックします。
5.jpg(52539 byte)

任意のフォルダに hogehoge と言うファイル名で「保存」します。
6.jpg(34556 byte)

「File」、「Exit」の順に選択して、PuTTYgenを終了します。
7.jpg(51688 byte)




- WinSCPインストール -

WinSCP download pageよりInstallation packageをダウンロードします。
8.jpg(111000 byte)

インストール後、デスクトップに出来たWinSCPのショートカットをクリックします。「新規」をクリックします。 9.jpg(52656 byte)

「ホスト名」、「ユーザ名」、を入力します。「パスワード」は空欄でも構いません。「秘密鍵」の右端の ボタンをクリックします。


hogehoge.ppk のあるフォルダーを指定します。hogehoge.ppk を選択して「開く」をクリックします。 11.jpg(36179 byte)

秘密鍵にhogehoge.ppk の保存先パス名が入っていることを確認して、「保存」ボタンをクリックします。

セッションの保存名は任意で変更、もしくは表示されているままでも構いません。「OK」ボタンをクリックします。



- WinSCP操作方法 -

保存した、セッション名を選択して、「ログイン」ボタンを押します。

警告のWindow が表示されますが、「更新」ボタンを押します。 15.jpg(20679 byte)

秘密鍵のパスフレーズ(パスワード)を入力して、「OK」ボタンをクリックします。 16.jpg(19171 byte)

ログインが成功すると、WinSCPのプログラムが起動します。左ペインはクライアントPCの「マイドキュメント」の 中身を表示しています。右ペインはサーバ側のhogehoge フォルダの中を表示しています。(図を拡大できます。)

WinSCPの終了は右下側の「F10終了」を選択して、「OK」ボタンをクリックします。

クライアントのサンプルフォルダをサーバのhogehoge フォルダに転送します。サンプルを選択してかから、左下側の 「F5 コピー」をクリックします。(図を拡大できます。)

「コピー」を選択します。今後、このメッセージを表示させたくない場合、「このダイアログを二度と表示しない」を 選択します。
19.jpg(24768 byte)

右ペインのサーバ側hogehoge フォルダにサンプルフォルダーがコピーされました。サーバ側からクライアントPCに 転送する場合、逆の操作をします。また、ファイルやフォルダーを右クリックして削除も出来ます。(図を拡大できます。)



- ファイル転送時の注意点 -

サーバ側にあるフォルダやファイルにはアクセス権が設定されています。アクセス権は所有者、グループ、他人の3項目に 分類されます。基本的にファイルの所有者は読み書き実行ができますが、グループや他人には読み、実行しか許可されて ないケースが多いです。
そのためWinSCPでログインした場合、ログインユーザの権限でサーバ側のフォルダやファイルに ファイルをアップロードしようとすると、アクセス権エラーが起こります。その場合、アクセス権をサーバ側で変更する 必要があります。ホームページを公開するフォルダ(/srv/www/htdocs)を例に説明します。

ホームページを公開するサーバ側フォルダに移動して、サンプルファイルの転送を試します。フォルダー移動ボタン を操作して /srv/www/htdocs まで移動します。更新ボタンは、最新の状態を表示するときに押します。(図を拡大できます。)

クライアントPCからファイル転送すると下記のエラー表示が出ます。「中止」ボタンを押します。原因はフォルダのパミッション(権限)の問題です。 フォルダの所有者以外ファイルを操作できない設定になっているため、WinSCPでログイン中のユーザ hogehoge(所有者) は所有者 root のフォルダー 内に、書込み操作が出来ない状態です。 21.jpg(20670 byte)

htdocs フォルダを右クリックして、プロパティを選択します。(図を拡大できます。)

パミッションの欄を見るとわかりますが、htdocs フォルダの所有者はR(読み) W(書き) X(実行) の権限がありますが 他人の欄では、読みと実行しか出来ません。書きの権限も追加する必要があります。
左下の図を見ると、8進数のところに 0755 とある番号は現在の権限を表します。試しに、グループと他人にもチェックを 入れてみます。右下の図は入れたところを表示しています。権限が 0777 に変わりました。残念ながら、WinSCPではOK ボタンを押しても権限が無いため変更できません。

26.jpg(31688 byte) 27.jpg(32038 byte)

 

権限を 0777 に変更します。変更方法は、毎度おなじみviエディタを使います。viエディタで変更後、WinSCPの更新ボタンを 押して権限が変わっていることを確認してください。これでクライアント側からファイル転送が出来ます。
ポイントとしては、所有者以外の「グループ」、「他人」の権限がどうなっているか確認し、必要に応じてviエディタからroot権限 で変更するという事です。

         
hoge123:/ # chmod 777 /srv/www/htdocs
hoge123:/ # cd /srv/www/ 
hoge123:/srv/www # ls -la
合計 24
drwxr-xr-x.  6 root root 4096  6月  7 22:07 2012 .
drwxr-xr-x. 23 root root 4096  6月  8 21:16 2012 ..
drwxr-xr-x.  2 root root 4096  2月 14 07:27 2012 cgi-bin
drwxr-xr-x.  3 root root 4096  6月  7 22:07 2012 error
drwxrwxrwx.  2 root root 4096  6月  9 13:39 2012 htdocs ← 誰でも読み書きできるようになりました。
drwxr-xr-x.  3 root root 4096  6月  7 22:08 2012 icons

htdocsフォルダの権限が変更されたことで、サンプルフォルダがアップロードできました。(図を拡大できます。)


自宅サーバ構築(SUSE Linux Enterprise Server 11)に戻る


Copyright(C) PCDEMAGIC All Rights Reserved.