如何使用SSH文件传输协议将文件从本地机器复制到服务器?

mor*_*ous 3 shell ubuntu sftp

我有一台Ubuntu 9.10台式机,我在本地使用.我正在托管服务提供商上设置服务器.服务器将运行一个非常小的Ubuntu服务器LTS版本(只有LAMP和电子邮件服务器没有GUI).

我想编写一个脚本(安排为cron作业),允许我将本地文件上传到服务器上.出于安全原因,我想使用[SFTP] [1].

我是shell脚本的新手 - 但我想shell脚本就是这样做的方式(除非我弄错了).

任何人都可以向我提供有关如何编写此类脚本的初始指示,以便安全地将本地文件上载到服务器?

理想情况下,我想在传输之前压缩文件(以节省带宽)

[1]:http:// SSH文件传输协议

bma*_*ies 6

无论你拼写为"安全"还是"安全",我们都无法读懂你的想法并告诉你想要保护什么.所以我会给出一个基本配方并告诉你它有什么用处.这可能应该全部转移到超级用户身上.

  1. 学习基本的bourne shell.它的教程不适合stackoverflow答案.
  2. 运行ssh-keygen来创建一个ssh密钥对.由于你想从cron运行scp,你不能使用密码,AFAIK.这意味着您必须确保您复制的计算机不受入侵者的影响.
  3. 将公钥从ssh密钥对复制到目标计算机上的.ssh/authorized_keys.
  4. 通过运行'ssh target-machine'并成功登录sans-password来证明这是有效的.

现在,您可以创建一个使用scp命令执行实际副本的shell脚本.从...开始:

#!/bin/sh
scp PATHNAME_OVER_HERE target-host:/PATHNAME_OVER_THERE
Run Code Online (Sandbox Code Playgroud)

这对于基本密码间谍和使用telnet连接到目标主机的rand是安全的.如果源系统不安全则不安全,我不能保证ssh协议的安全性,尽管它当然被广泛使用.