特殊文字を含むパスワード(SSH キーなし)を使用して、SFTP 1 行 CLI コマンドでファイルをダウンロードします。

特殊文字を含むパスワード(SSH キーなし)を使用して、SFTP 1 行 CLI コマンドでファイルをダウンロードします。

SFTP サーバーからファイルをダウンロードしてアーカイブする必要がある Synology があります。

FTP プロトコルが使用されていたときは WGET を使用していましたが、ファイル所有者がプロトコルを SFTP に変更しました。

wget -m ftp://username:password@host/* -P /volume1/local/folder

そのため、現在は WGET を使用できず、他のものを使用する必要があります。

私の読書から私が使えるのはsftpまたはlftpコマンド。

パスワードに @ 文字が含まれているため、それらのワンライナーは機能しません。

私が試してみました:

sftp --password="password" "username"@"host":/* /volume1/local/folder

しかし、sftp は次をスローします:

unknown option -- -

私もインストールできませんsshpassSynology マシンでアップデートを取得するとすぐに動作しなくなるためです。

これを実行する方法はありますか? これを bash スクリプトで実行する必要がありますか?

PS: SFTP サーバーに SSH キーをインストールできません。別の組織が所有しており、代わりにインストールしてくれません。

アップデート:

lftp -u 'username','password@' 'host' -p 22 "ls; bye"

動作しているようです。ダウンロードが機能するようにしています。

ls何らかの理由で、コマンドは次の出力を表示します:

`ls' at 0 [FEAT negotiation...]

更新: 少しは進歩しましたが、まだ十分ではありません:

lftp -u 'username','password@' 'host' -p 22 -e "set ftp:use-feat false; set ssl:verify-certificate no; get FILE.ZIP; bye"

これは接続しているように見えますが、TLS ネゴシエーションで停止します。

`FILE.ZIP' at 0 [TLS negotiation...]

関連情報