I'm using lftp to send files to an SFTP server, but I don't how to connect with key and passphrase.
So in sftp
, I can do this:
sftp -i .ssh/id_rsa.mykey [email protected]
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here
So, how can I use lftp with this connection method?
An answer based off Jean-Luc Boss's and wiak's, but a bit more explicit:
To connect to a server, lftp
uses an ssh
command, by default ssh -a -x
. It doesn't have an explicit option for changing the keyfile to use, but as you note, ssh
does, so we just need to set lftp
to connect using ssh -a -x -i <keyfile>
before it connects.
You can do this in a few ways:
If you're using lftp's interactive command line, run the following command before you connect:
set sftp:connect-program "ssh -a -x -i <keyfile>"
If you're specifying a bunch of commands to lftp
using -c
, just add that set command to the start of your command sequence:
lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://[email protected]; mirror -eR files; ...'
If you always going to want to use the same key, just add that set ...
line from the first bullet to your ~/.lftprc
file (or one of the other configuration file options listed in man lftp
).
You must specify the username, and just pass anything as the password, to skip it asking.
lftp -u user,xxx sftp://...
Just add:
set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"
to your ~/.lftprc
, as most of the settings can be set permanently there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With