最近、多くの VOS や OpenVOS のお客様が、標準の ftp クライアント (ftp.pm) から安全な ftp クライアント (sftp.pm) に切り替えています。 ftp よりも sftp を使用する主な理由は 2 つあります。 まず、sftp はパスワードを平文で送信することはなく、常に暗号化されています。第二に、sftp は送信中にデータを暗号化します。 しかし、多くのユーザが VOS のコマンドマクロを書いて、 ftp に「定型」のユーザ ID とパスワードを供給しているようですが、 sftp にユーザ ID を事前に指定することはできても、パスワードを事前に指定する方法がないことに気づいたようです。 sftp コマンドがパスワードを要求するのを待たなければなりません。
これは、すべてのオペレーティングシステムにおける sftp の標準的な手順です。 最初はこの動作を理解できないかもしれませんが、sftp はあなたに好意的に働きかけています。 これは意図的にターミナルから直接パスワードを読み取るもので、「stdin」からパスワードを読み取るものではありません。 sftp の作者は、ファイルやシェルスクリプトにパスワードを入力するのはよくないことだと考えています。
幸いなことに、sftp の作者はこの問題に対して素晴らしい解決策を提供してくれました。 公開鍵の仕組みを使ったユーザ認証を実装したのです。 秘密鍵をソースモジュール (sftp または ssh コマンドを使用するマシン) のホームディレクトリの下の .ssh サブディレクトリに置き、公開鍵をターゲットモジュールの同じディレクトリに置けば、パスワードを入力することなくログイン (または sftp を使用) することができます。
これは、ソフトウェアが秘密鍵を使用する前に、他の誰もあなたのホームディレクトリを変更できないこと、および .ssh サブディレクトリ内のファイルを他の誰も読むことができないことを確認するため、安全です。 公開鍵だけがリモートサーバに保持されるため、リモートサーバが危殆化した場合でも、公開鍵は定義上公開されているため、セキュリティ上の問題はありません。秘密鍵は常にローカルマシン上に残り、ネットワーク上で転送されることはありません。 これは SSH2 プロトコルの重要な特性です。 このプロトコルを解読するのに必要なコンピュータのパワーは、 現在利用可能なものをはるかに超えています。 このプロトコルは、すべてのパケットを見ることができる誰かに対しても安全です。
ですから、sftp コマンドが ftp の代わりになるものではないという事実を心配する必要はありません。 セキュリティが向上し、使いやすさが向上したことを享受しながら、その利点を利用してください。 固定パスワードをなくして、公開鍵や秘密鍵に切り替えましょう。