lftpを使用してファイルをsftpサーバーに送信していますが、キーとパスフレーズを使用して接続する方法がありません。
したがって、sftpでは、これを行うことができます:
sftp -i .ssh/id_rsa.mykey [email protected]
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here
では、この接続方法でlftpを使用するにはどうすればよいですか?
要求をスキップするには、ユーザー名を指定し、パスワードとして何かを渡す必要があります。
lftp -u user,xxx sftp://...
Jean-Luc Bossとwiakに基づいた答えですが、もう少し明確です。
サーバーに接続するために、lftp
はssh
コマンドを使用し、デフォルトではssh -a -x
です。使用するキーファイルを変更するための明示的なオプションはありませんが、ご存知のとおり、ssh
があるため、その前にssh -a -x -i <keyfile>
を使用して接続するようにlftp
を設定する必要があります。接続します。
これはいくつかの方法で行うことができます。
Lftpのインタラクティブコマンドラインを使用している場合は、接続する前に次のコマンドを実行します。
set sftp:connect-program "ssh -a -x -i <keyfile>"
-c
を使用してlftp
に一連のコマンドを指定する場合は、そのsetコマンドをコマンドシーケンスの先頭に追加するだけです。
lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://[email protected]; mirror -eR files; ...'
常に同じキーを使用する場合は、最初の箇条書きのset ...
行を~/.lftprc
ファイル(またはman lftp
にリストされている他の構成ファイルオプションの1つ)に追加するだけです。 。
追加するだけです:
set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"
あなたの~/.lftprc
、ほとんどの設定はそこで永続的に設定できるため。
LFTPは、SSHで「ssl:key-file」で指定されたIDファイルを渡さないか、使用しないようです。sftp:connect-programオプションで指定する必要があります:「ssh-a -x-iyourprivatekeyfile」
これはうまくいくはずです。