![如何通过 sftp 将文件移动到 Windows 服务器?](https://linux22.com/image/1145364/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20sftp%20%E5%B0%86%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%20Windows%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我想将 test.zip 文件从我的 Ubuntu 14.04 服务器移动到 Windows 服务器。
sftp
我需要一个每天执行此操作的 bash 脚本(cronjob)。
我在 google 上只找到了 ftp 脚本,sftp 脚本对我来说不起作用。
答案1
您可以设置sftp
使用登录,这样您无需密码key
即可执行类似操作(您也可以使用- )ftp
scp
secure copy over ssh
为此,您需要创建私钥和公钥,并将公钥放在服务器上。
创建密钥:在 Ubuntu 服务器上执行以下命令:
$> ssh-keygen -t rsa
按 ENTER 键选择所有提示的选项。无需输入任何值。
现在复制.ssh/id_rsa.pub
到你的 Windows 服务器
假设您的 Windows 服务器上有 OpenSSH:
导航到您的帐户主目录的 .ssh 子目录。您可能需要启用显示隐藏文件才能看到该目录。如果该目录不存在,您需要先创建它。
到达那里后,打开文件 authorized_keys 进行编辑。如果这是您的第一个密钥,您可能必须再次创建此文件。
选择要粘贴到 authorized_keys 文件中的公钥框中的所有文本,并将其复制到剪贴板 (Ctrl+C)。然后,切换回编辑器并将数据插入打开的文件中,确保所有内容都在一行上。保存文件。
确保您的帐户主目录、.ssh 目录和文件 authorized_keys 不可由群组写入或由其他人写入。.ssh 目录的建议权限为 700。authorized_keys 文件的建议权限为 600。阅读有关更改权限的更多信息。
要在 Windows 上设置 OpenSSH 服务器:https://winscp.net/eng/docs/guide_windows_openssh_server
设置 SSH 公钥认证:https://winscp.net/eng/docs/guide_public_key
生成 SSH 公钥/私钥:https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/