ssh-agentでlftpを使用する

ssh-agentでlftpを使用する

SFTPサーバーにログインするスクリプトがあります

eval `ssh-agent -s`
ssh-add /home/<username>/.ssh/id_rsa
sftp <username>@<target>

これはうまくいきますが、特定の日付よりも最新のファイルだけをインポートしたいと思います。 sftpでは可能ではないようで、使いたいです。リモート転送プロトコル

lftpを使用して同じスクリプトを実行しようとすると

eval `ssh-agent -s`
ssh-add /home/<username>/.ssh/id_rsa
lftp <username>@<target>

パスワードの入力を求められます。 ssh-agentでlftpを使用できますか、それともパスワードの提供を避ける他の方法はありますか?

ベストアンサー1

パスワードが必要なのはLFTPの欠陥だけです。リテラル文字列DUMMY(たとえばlftp sftp://<username>:DUMMY@<target>)などのダミーパスワードを指定した場合、lftpはパスワードの入力を求めずにSSHエージェントでパスワードを確認します。キーを設定しないと、パスワードが〜する使用。

sftp:connect-programあるいは、lftpの設定を上書きして、sshにプロキシを設定せずに特定のキーファイルを使用させることもできます(まだダミーパスワードが必要です)。 (1つのアプローチ)は、次のように実行できますlftp sftp://<username>:DUMMY@<target> -e 'set sftp:connect-program "ssh -a -x -i <yourprivatekeyfile>"'

これはsftp:connect-program、SFTPセッションを作成するためにlftpによって使用されるオプションです。デフォルトはthisですが、ほとんどssh -a -xすべてのコマンドにすることができます(正確な制限についてはlftpのマニュアルページを参照)。ここでは-i、特定の秘密鍵を強制的に使用するオプションを追加しました。

(注:<xxx>上記の例のすべてのビットは実際の値に置き換える必要があります。


許可された回答で何かを編集するには...

  • SSHには内部FTPサーバーはありません。 sftpはsshの拡張として設計された独自のプロトコルです。ファイル転送プロトコルであり、詳細な点で共通点がほとんどないため、「ftp」でのみ終了します。

  • さらに、LFTP は FTP に直接接続できますが、次にも接続できます。トーンその他の契約。 sftp を使用して接続する場合は、ssh を直接呼び出して接続設定を処理するため、一般的な ssh 認証方法がすべて適用されます。 LFTPがsshを呼び出すために使用するコマンドは、そのsftp:connect-programオプションを使用して再構成できます(したがって、上記の2番目の選択肢)。

おすすめ記事