自宅サーバ構築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」をクリックします。SSH接続時使用する秘密鍵(id_dsa)の保存場所を指定して、「ファイルの種類」をAll Files (*.*) にします。 「id_dsa」を選択して「開く」をクリックします。
SSH接続時に使用するパスフレーズ(パスワード)と同じパスフレーズを入力します。
「OK」ボタンを押します。
「Save private key」をクリックします。
任意のフォルダに hogehoge と言うファイル名で「保存」します。
「File」、「Exit」の順に選択して、PuTTYgenを終了します。
- WinSCPインストール -
WinSCP download pageよりInstallation packageをダウンロードします。
インストール後、デスクトップに出来たWinSCPのショートカットをクリックします。「新規」をクリックします。
「ホスト名」、「ユーザ名」、を入力します。「パスワード」は空欄でも構いません。「秘密鍵」の右端の ボタンをクリックします。
hogehoge.ppk のあるフォルダーを指定します。hogehoge.ppk を選択して「開く」をクリックします。
秘密鍵にhogehoge.ppk の保存先パス名が入っていることを確認して、「保存」ボタンをクリックします。
セッションの保存名は任意で変更、もしくは表示されているままでも構いません。「OK」ボタンをクリックします。
- WinSCP操作方法 -
保存した、セッション名を選択して、「ログイン」ボタンを押します。
警告のWindow が表示されますが、「更新」ボタンを押します。
秘密鍵のパスフレーズ(パスワード)を入力して、「OK」ボタンをクリックします。
ログインが成功すると、WinSCPのプログラムが起動します。左ペインはクライアントPCの「マイドキュメント」の 中身を表示しています。右ペインはサーバ側のhogehoge フォルダの中を表示しています。(図を拡大できます。)
WinSCPの終了は右下側の「F10終了」を選択して、「OK」ボタンをクリックします。
クライアントのサンプルフォルダをサーバのhogehoge フォルダに転送します。サンプルを選択してかから、左下側の 「F5 コピー」をクリックします。(図を拡大できます。)
「コピー」を選択します。今後、このメッセージを表示させたくない場合、「このダイアログを二度と表示しない」を 選択します。
右ペインのサーバ側hogehoge フォルダにサンプルフォルダーがコピーされました。サーバ側からクライアントPCに 転送する場合、逆の操作をします。また、ファイルやフォルダーを右クリックして削除も出来ます。(図を拡大できます。)
- ファイル転送時の注意点 -
サーバ側にあるフォルダやファイルにはアクセス権が設定されています。アクセス権は所有者、グループ、他人の3項目に
分類されます。基本的にファイルの所有者は読み書き実行ができますが、グループや他人には読み、実行しか許可されて
ないケースが多いです。
そのためWinSCPでログインした場合、ログインユーザの権限でサーバ側のフォルダやファイルに
ファイルをアップロードしようとすると、アクセス権エラーが起こります。その場合、アクセス権をサーバ側で変更する
必要があります。ホームページを公開するフォルダ(/srv/www/htdocs)を例に説明します。
クライアントPCからファイル転送すると下記のエラー表示が出ます。「中止」ボタンを押します。原因はフォルダのパミッション(権限)の問題です。 フォルダの所有者以外ファイルを操作できない設定になっているため、WinSCPでログイン中のユーザ hogehoge(所有者) は所有者 root のフォルダー 内に、書込み操作が出来ない状態です。
htdocs フォルダを右クリックして、プロパティを選択します。(図を拡大できます。)
パミッションの欄を見るとわかりますが、htdocs フォルダの所有者はR(読み) W(書き) X(実行) の権限がありますが
他人の欄では、読みと実行しか出来ません。書きの権限も追加する必要があります。
左下の図を見ると、8進数のところに 0755 とある番号は現在の権限を表します。試しに、グループと他人にもチェックを
入れてみます。右下の図は入れたところを表示しています。権限が 0777 に変わりました。残念ながら、WinSCPではOK
ボタンを押しても権限が無いため変更できません。
権限を 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)に戻る