Windowsで提供されているftp.exe
を使用して、インターネット上のベンダーとファイルをアップロードおよびダウンロードするために使用されるスクリプトは多数あります。これはSideWinder経由でプロキシされ、ベンダーにFTPで送信されますが、SFTPをサポートしています。
ftp -s:filename
which FTPコマンドを含むテキストファイルを指定します。コマンドはFTPの起動後に自動的に実行されます。
ftp -n -s:dir\filename.ftp proxy.example.com
私たちがしたいことは、Windows提供のssh.exe
を介してこれをトンネリングすることです。これにより、SideWinderプロキシを削除し、FTPコマンドに既存のfilename
ファイルを引き続き使用できます。
これは、Windows提供のssh.exe
およびftp.exe
を使用して可能ですか?
私は無料でSFTPプログラムがあることを知っています。既存のシステムへの最小限の変更でこれを達成しようとしています。うまくいけば、FTP接続と操作の前のスクリプトでは、SSH接続と同じくらい簡単です。
これがあなたの望む答えではないことはわかっていますが、SFTPに切り替えることを強くお勧めします。
まず、SFTPは別のプロトコルであり、SSHトンネルを介したFTPだけではありません。したがって、SSHトンネルの背後にあるFTPサーバーにアクセスする場合を除き、ssh.exeを介したftp.exeのプロキシは機能しません。
個人的には、私は WinSCP に切り替えることをお勧めします。無料です Powershellのサポートが非常に優れています ので、現在のファイルを解析して実行するPowerShellスクリプトを簡単に記述できます。代わりにWinSCPを使用する必要なコマンド。
[〜#〜] sftp [〜#〜] は、SSH内でFTPをトンネリングすることとはまったく同じではなく、実際にはSSHへの拡張子ですプロトコル。
理論では、ホストへのFTP接続は別の SSHトンネル を介してトンネリングできます。これを行うには、最初にssh.exe
を使用してサーバーへのトンネルネットワーク接続を確立し、次にftp.exe
の既存のコマンドを使用してファイル転送を実行する必要があります。ただし、システムがかなり複雑になります。
代わりにSFTPクライアントを使用することをお勧めします。このようにして、安全なファイル転送を単一のコマンドで実行できます。ただし、すべてのFTPコマンドがSFTPで同じであるとは限らないため、FTPコマンドの既存のテキストファイルを更新する必要がある場合があります。
いくつかのサードパーティのSFTPクライアントが利用可能で、最近のWindowsバージョンには オプションの機能 としてOpenSSHクライアントさえあります。
認証に SSHキー を使用してもかまわない場合は、組み込みのOpenSSHSFTPクライアントを使用します。
sftp.exe -b sftp-commands.txt example.com
SSHキーの使用がオプションでない場合、別の一般的なクライアントはWinSCPであり、パスワード認証もサポートしています。 WinSCPとSFTPの古いftp.exe
バッチコマンドを変換するための ガイド もあります。
また、ベンダーのサーバーが[〜#〜] sftp [〜#〜]をサポートしていても、必ずしもすべてがサポートされているとは限りません[ 〜#〜] ssh [〜#〜]機能。 SFTPは基本プロトコルとしてSSHを使用しますが、多くのSFTPプロバイダーは セキュリティ上の理由 のために、SSHをSFTPの使用のみに制限しています。これにより、FTPに個別のSSHトンネリングの使用を事実上除外できます。