最近、多くのVOSおよびOpenVOSユーザーが標準FTPクライアント(ftp.pm)からセキュアFTPクライアント(sftp.pm)へ移行しています。FTPではなくsftpを使用する主な理由は2つあります。第一に、sftpはパスワードを平文で送信せず、常に暗号化されます。第二に、sftpは転送中のデータを暗号化します。 しかし、多くの顧客がVOSコマンドマクロを作成し、FTPに「固定」のユーザーIDとパスワードを供給していたようです。彼らは、sftpではユーザーIDを事前指定できるものの、パスワードを事前指定する方法がないことに気づきました。sftpコマンドがパスワード入力を促すプロンプトを表示するまで待機し、キーボードで入力する必要があります。
これはすべてのオペレーティングシステムにおけるsftpの標準的な動作です。最初は気に入らないかもしれませんが、sftpはあなたのためにそうしているのです。sftpは意図的にパスワードを端末から直接読み込みます。「stdin」からは読み込みません。sftpの開発者は、パスワードをファイルやシェルスクリプトに置くことは悪い習慣であり、非常に安全性が低いと考えていました。
幸いなことに、sftpの開発者たちはこの問題に対する優れた解決策を提供しました。 彼らは公開鍵メカニズムによるユーザー認証を実装しました。ソースモジュール(sftpやsshコマンドを使用するマシン)のホームディレクトリ配下の.sshサブディレクトリに秘密鍵を配置し、ターゲットモジュール上の同じディレクトリに公開鍵を配置すれば、パスワードを入力することなくログイン(またはsftpの使用)が可能になります。
これは安全です。なぜなら、ソフトウェアはあなたの秘密鍵を使用する前に、他の誰もあなたのホームディレクトリを変更できないこと、また他の誰もあなたの.sshサブディレクトリ内のファイルを読み取れないことを確認するからです。公開鍵のみがリモートサーバーに保持されるため、たとえそのリモートサーバーが侵害された場合でも、セキュリティ上の問題はありません。公開鍵は定義上、公開されているものであり、誰でも読み取ることが許されているからです。 秘密鍵は常にローカルマシン上に残り、ネットワーク経由で送信されることはありません。これは基盤となるSSH2プロトコルの本質的な特性です。このプロトコルを破るのに必要な計算能力は、現時点で利用可能な範囲をはるかに超えています。すべてのパケットを監視できる者に対しても、このプロトコルは安全です。
したがって、sftpコマンドがftpの完全な代替ではないことを心配する必要はありません。そのセキュリティ強化の利点を活かしつつ、使いやすさの向上も享受しましょう。静的パスワードを廃止し、公開鍵/秘密鍵方式に切り替えてください。
