如何自动化 SFTP 以摆脱密码提示?

如何自动化 SFTP 以摆脱密码提示?

我需要执行 SFTP 自动化(以摆脱密码提示)。我该怎么做?

答案1

您需要设置一个公钥/私钥。如何自动执行两个服务器之间的 SFTP 传输?

答案2

我的建议是使用 SSH authorized_keys。您需要在客户端创建一个密钥(使用 ssh-keygen),然后将公钥复制到目标端。

client-machine% ssh-keygen -t rsa
client-machine% scp ~/.ssh/id_rsa.pub user@target-machine:~/.ssh/authorized_keys2

请注意,如果您想从两个或更多“客户端”访问目标计算机,则不能直接将 id_rsa.pub 复制到 authorized_keys2。您需要打开 authorized_keys2 并将来自每个客户端计算机的 id_rsa.pub 粘贴到其上(或使用下面的行附加内容)

client-machine% cat ~/.ssh/id_rsa.pub | ssh user@target-machine \
                'cat >> .ssh/authorized_keys'

现在您可以在没有用户/密码信息的情况下使用 ssh/scp:

client-machine% ssh user@target-machine
client-machine% scp file user@target-machine:~/file

答案3

看看 VisualCron 自动化套件。它内置了 SFTP 和 SSH 以及普通 FTP 的自动化功能。http://www.visualcron.com

答案4

如果不担心安全问题,那么密码可以在脚本中以明文形式显示。例如,在 Microsoft Windows 上使用 pscp油灰包裹。

例子:

"d:\putty0.58\pscp"  -pw MyNotSoSecretPassWord  u:\outGoing\someFileToTransfer.7z  [email protected]:/srv/www/htdocs/1/MSQuantDynamics/someFileToTransfer.7z

密码:MyNotSoSecretPassWord。用户名:kingOfTheHill。主机:www.pil.sdu.dk。

在我们的例子中,sftp 服务器在基于 Linux 的服务器上运行。

相关内容