Ubuntu 如何使用SSH文件传输协议将文件从本地计算机复制到服务器?
我有一台本地使用的Ubuntu 9.10桌面机。我正在主机提供商上设置服务器。服务器将运行Ubuntu服务器LTS的最低版本(只有LAMP和电子邮件服务器,没有GUI) 我想写一个脚本(计划为cron作业),允许我将本地文件上传到服务器上。出于安全原因,我想使用[SFTP][1] 我不熟悉shell脚本——但我想shell脚本是实现这一点的方法(除非我弄错了) 有谁能为我提供一些关于如何编写这样一个脚本的初步建议,以便安全地将本地文件上传到服务器 理想情况下,我希望在传输之前压缩文件(以节省带宽)Ubuntu 如何使用SSH文件传输协议将文件从本地计算机复制到服务器?,ubuntu,shell,sftp,Ubuntu,Shell,Sftp,我有一台本地使用的Ubuntu 9.10桌面机。我正在主机提供商上设置服务器。服务器将运行Ubuntu服务器LTS的最低版本(只有LAMP和电子邮件服务器,没有GUI) 我想写一个脚本(计划为cron作业),允许我将本地文件上传到服务器上。出于安全原因,我想使用[SFTP][1] 我不熟悉shell脚本——但我想shell脚本是实现这一点的方法(除非我弄错了) 有谁能为我提供一些关于如何编写这样一个脚本的初步建议,以便安全地将本地文件上传到服务器 理想情况下,我希望在传输之前压缩文件(以节省带宽
[1] :文件传输协议无论您拼写为“安全”还是“安全”,我们都无法读懂您的心思并告诉您要防范什么。所以我会给你一个基本的食谱,告诉你它有什么好处。这可能都应该转移到超级用户
#!/bin/sh
scp PATHNAME_OVER_HERE target-host:/PATHNAME_OVER_THERE
这对于基本密码间谍和使用telnet连接到目标主机的随机性是安全的。如果源系统不安全,它就不安全,我不能保证ssh协议的安全性,尽管它确实被广泛使用
如何使用SSH文件传输协议将文件从本地计算机复制到服务器
使用scp
我想在cron工作中完成它
在cron作业中使用scp
的主要问题是:您从哪里获得凭据?
把你的密码保密不是一个好主意。更好的办法是在您的机器上运行ssh代理
进程。要找到合适的ssh代理
,可以运行以下脚本:
#!/bin/sh
for i in $SSH_AUTH_SOCK /tmp/ssh*/agent*
do
if [ -r "$i" -a -w "$i" ]; then
case `SSH_AUTH_SOCK="$i" ssh-add -l` in
*:*:*) echo "$i"; exit 0 ;;
esac
fi
done
exit 1
如果脚本成功,则在运行scp
之前,可以将一个值放入SSH\u AUTH\u SOCK
环境变量中
启动客户端时,您应该通过启动
ssh agent
并运行ssh add
b来显示您的凭据。argulies:谢谢,这正是我开始时需要知道的。关于大写安全性,这是一个“胖手指”问题(缺少咖啡;))SSH代理在哪台机器上运行(客户端[桌面]或远程服务器)?@morphase:SSH代理在客户端上运行;服务器在授权密钥
文件中保留公钥。如有必要,您可以使用ssh-keygen
创建一对。另请参阅