我需要执行 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 的服务器上运行。