2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;
[前] USBメモリが壊れた 2010/10a |
‥ということなんでしょうか。
Ninja Tools の gozaru.jp 上に
ある自分のアカウントにFTPログインしようとしたら拒絶されます。何?! と思って見てみたところ、
「ファイルのアップロード」の際の FTP アクセスは完全に排除、FTPS でしかアクセスできなくしたから
ヨロシクね、というかなり思い切ったセキュリティ対策を取ったみたいですね。
フリーなサービスだからできる、非常に大胆なサービス内容の変更といえます(^o^;
まあ、それだけセキュリティ意識が高いということなんでしょうけど、だとしたら何故
FTPSパスワード変更のページなどはHTTPSとかじゃなくて
素のHTTPなのかという気もしないこともないですが、それはご愛嬌‥
さて。私は このサイトにファイルを「アップロード」する際には、 専用のバッチファイルを使うようにしています。そのバッチファイルをダブルクリックすると バッチファイルが勝手に(?)サーバにアクセスしてファイル群をサーバにPUTするので、 私は一連のファイル転送が終わるまで ぼけーっと待ってるだけ、という感じの利用法です。 そして、それを実現するため、FTP アクセスにはコマンドライン(CUI)でサイレントに実行する FTPコマンド(Windows標準ではないものをどこかから拾ってきたもの)を愛用していたわけです。
なので、これまで FTP クライアントの役割をしていたCUIのコマンドを FTPS 対応のものに入れ替えれば もう話は終わりじゃん、と思いましたので、調べてみたところ‥ CUIのレベルでFTPSクライアントになってくれるコマンドがなかなか見当たりません。 唯一見つけることのできたのは、GUIのレベルではこれまでかなり使用経験のある WinSCP。 調べてみると、バージョン 4.2beta から FTPS (FTP over TLS/SSL) への 対応をスタートしてるみたいですね。まさかこんな用途で WinSCP を使うことになろうとは
そこで WinSCP 4.2.7 Portable executable となってるやつをダウンロード、展開してみます。 展開すると WinSCP.com と WinSCP.exe という、それっぽい名前のコマンドが二つあります。 どうやら EXE ファイルのほうが本体で、コマンドラインで使うときは COM ファイルのほうを起動させると ウィンドウが出ないような細工をしてEXEファイルのほうを呼び出してくれる、という 感じになってるみたいです。
ということで。 さっそく WinSCP.com を使って、gozaru.jp のサーバにアクセスしてみましょう。 多少の試行錯誤の結果、以下のようにすれば サーバに接続できることを確認しました。
上記のようなコマンドを入力すると、下記のようなメッセージが出て (手入力なので一部間違ってるかも)
Connecting to example.gozaru.jp ... Connected with example.gozaru.jp, negotiating SSL connection... SSL connection established. Waiting for welcome message... Connected Starting the session... Reading remote directory... Session started. Active session: [1] example.gozaru.jp@example.gozaru.jp winscp>
こうして WinSCP でサーバへのアクセスが可能なことを確認したら、 サーバへのアクセス、またファイルの転送を自動的に行うため、 WinSCP が勝手に行うべき動作の内容をまとめた「スクリプト」なるものを 用意してやります。ここでは、 bin\file-send.winscp という名前の、 以下のようなスクリプトを用意しました。
open ftps://example.gozaru.jp:PASSWORD@example.gozaru.jp:21/test/ -passive -explicittls lcd ".\spool" option confirm off synchronize remote close exit
上のようなスクリプト(bin\file-send.winscp)を書いたら、あとは WinSCP がこのスクリプトを勝手に読み込んで勝手にその内容を実行してくれるような 仕組みを整えます。幸いなことに私は すでにサーバへのアクセス・ファイル転送を勝手に 行わせるバッチファイルを用意してありましたので、そのバッチファイルのうち、 サーバへのアクセス・ファイル転送を行う部分だけを以下のように書き換えてやるだけで 準備OKとなりました。
(^o^)v
ただ、上のスクリプトでは、ユーザ名とパスワードとサーバ名が全部セットで並んで 書かれている点がちょっと無用心ですね。何とかならないかなあ‥と思って、とりあえず スクリプトのサーバへのアクセス部分、open で始まる行を 以下のように書き直してみました。
[後日談] Ninja のサーバの FTPS 制限の話、トラブル頻発で結局ウヤムヤに なっちゃってますね。たしかに、上のスクリプトでの接続も実際に運用開始してみると うまくいったり、全然ダメだったり、という感じで正直使い物にならない感じです。 何なんだかなー。
[次] US/JPキーボード切り替え 2010/05a |