LFTP:为特定服务器保存 username/password?

LFTP: save username/password for specific server?

我能否在某个本地配置文件中为 ftp 服务器保存 username/password 对,以便 lftp 在连接到该服务器时自动找到它们?

背景:我有多个用户使用的脚本,具有不同的 username/password 对,将一些生成的内容从存储库同步到 ftp 服务器。如果不必每次都手动输入我们的 usernames/passwords 就好了。由于 ftp 密码以明文形式发送,我们为此都使用低值密码,因此可以将密码以明文形式存储在本地配置文件中。

您可以使用 ~/.netrc 文件或 lftp 书签。

将这样的内容添加到 ~/.netrc:

machine your.server.example.com login your_login password your_password

然后lftp会在打开ftp://your_login@your.server.example.com的时候选择密码,打开your_login会自动使用your_login在没有 URL 语法的情况下打开 "your.server.example.com" .

使用书签时,做"set bmk:save-passwords true"(默认为false),然后将当前session保存到书签下一个名字,然后"open bookmark_name" 将使用 login/password 对。书签文件是纯文本,因此您甚至可以使用任何文本编辑器添加 URL 和 login/password。要为所有用户使用公共书签,请将 LFTP_HOME 环境变量设置为公共目录。

关于 lftp 书签的更多详细信息:

首先添加行 set bmk:save-passwords yes 到主 lftp 配置文件 /etc/lftp.conf.

现在每个用户都可以添加自己的书签:

lftp -c "bookmark add SiteName ftp://user:password@sitename.com/path"

在脚本中使用 lftp 时只需使用:lftp -c "open SiteName && lcd MyLocalDir && mput ./"*