连接到 sftp 服务器时如何指定 lftp 使用哪个密码?

连接到 sftp 服务器时如何指定 lftp 使用哪个密码?

我正在使用 lftp 连接到 sftp 服务器,但收到“无匹配密码”错误,并且需要指定使用哪个密码。

使用 sftp 连接的命令如下所示:

sftp -c aes256-cbc sftp://sftpserver:10

如何使用 lftp 连接该密码?我找不到有关密码或如何指定要使用哪种加密并让lftp 将其传递给 ssh 的任何信息。我正在寻找类似于 sftp 的选项 -o 的选项,可以传递给 ssh 的选项。

答案1

阅读man lftp并查看set sftp:connect-program。这是我的示例(lftp 的 shell 包装器),您可以从中了解如何使用它,在我的例子中,我通过跳转盒使用 lftp 到 sftp。

...
sshargs="ssh -F ${tmpdir}/.ssh/config -J "
sshargs+="${JUMPBOX_USER}@${JUMPBOX_HOST}"

export LFTP_HOME=${tmpdir}
cat > ${tmpdir}/rc <<EOF
set sftp:connect-program ${sshargs}
EOF

lftp -c "
open -u ${WEBSERVER_USER},whatever sftp://${WEBSERVER_HOST}${DEST_DIR}
cd ${SRC_DIR} && mirror --dry-run -R --ignore-size -L --no-perms --no-umask
bye
"

答案2

对于交互式操作,您只需在 lftp 中键入以下命令作为第一个命令:

set sftp:connect-program "ssh -c aes256-cbc"

或者,您可以将此命令存储在 rc 文件中以自动加载,如下所示:~/.config/lftp/rc

相关内容