繁体   English   中英

如何使用 Bash 脚本中的密码运行 sftp 命令?

[英]How to run the sftp command with a password from Bash script?

我需要使用sftp从 Linux 主机将日志文件传输到远程主机。 我的操作组为我提供了相同的凭据。 但是,由于我无法控制其他主机,因此我无法生成并与其他主机共享 RSA 密钥。

那么有没有办法通过cron作业从 Bash 脚本内部运行sftp命令(使用提供的用户名/密码)?

我发现了一个类似的 Stack Overflow 问题, Specify password to sftp in a Bash script ,但我的问题没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

我找到的最简单的方法是使用CURLSFTP的组合,无需安装任何第三方库(如ExpectSSHPASS ...等)。 这两个几乎在每台 Linux 机器中都有。

这是您应该在更改值后执行的命令。

curl  -k "sftp://SERVER_IP:SERVER_PORT/FULL_PATH_OF_THE_FILE" --user "SERVER_USER:SERVER_PASSOWRD" -o "THE_NAME_OF_THE_FILE_AFTER_DOWNLOADING_IT"

例子:

curl  -k "sftp://10.10.10.10:77/home/admin/test.txt" --user "admin:123456" -o "test.txt"

解释:

我们使用用户名admin和密码123456连接到服务器10.10.10.10:77 ,将文件/home/admin/test.txt从该服务器移动到您当前使用的服务器以执行上述命令。

我需要使用sftp从Linux主机将日志文件传输到远程主机。 我的操作组提供了相同的凭据。 但是,由于我无法控制其他主机,因此无法与其他主机生成并共享RSA密钥。

那么,是否有一种方法可以通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)?

我发现了一个类似的Stack Overflow问题,即在Bash脚本中为sftp指定密码,但是没有令人满意的答案。

一些人提到sshpass ,但没有多少清晰的编码示例......

这就是我们使用 bash 脚本进行 rsync 备份的方式:

sshpass -p "${RSYNC_PASSWORD}" sftp "${RSYNC_USER}"@"${RSYNC_REMOTE_HOST}"

请记住,您必须sudo apt install sshpass才能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM