缘起:
在Linux上加密文件,传送到百度云上,然后再从百度云上下载文件;但是之前用的ccrypt命令在Windows上没有一个比较好的图形化/终端解密方案。
搜索关键字:
- encrypt file on linux and decrypt on windows
- use password when tar
参考解答:
用gpg或aes是比较靠谱和方便的;除了在Linux上加密方便之外,在Windows上也有经过验证的GUI软件提供解密,挺好的。
参考链接:
- http://security.stackexchange.com/questions/4411/simple-way-to-encrypt-files-on-linux-and-decrypt-on-windows
- http://gpg4win.org/
- =
- http://superuser.com/questions/381849/cross-platform-file-encryption-tool
- http://www.cyberciti.biz/tips/linux-how-to-encrypt-and-decrypt-files-with-a-password.html
- https://www.aescrypt.com/download/
- =
- http://xmodulo.com/how-to-create-encrypted-zip-file-on-linux.html
- http://stackoverflow.com/questions/24734101/use-tar-to-compress-file-tar-gz-with-password
- http://superuser.com/questions/370389/how-do-i-password-protect-a-tgz-file-with-tar-in-unix
- http://superuser.com/questions/272879/how-to-use-password-protection-with-the-linux-tar-command
==
因为需要用脚本自动加密传输的附件,确定的加解密方案为gpg,在Linux系统上只要装了gpg的话,不论是加密还是解密都很简单,但我这里需要的是从文件中读取字符串作为密钥进行对称加密,所以查看了一下gpg的manual手册,在网上搜索了之后自己进行测试,得到实际经验如下:
# gpg --dump-options | grep pass --passphrase --passphrase-fd --passphrase-file --passphrase-repeat
但是我使用其中的 –passphrase-file 选项时,还会提示需要继续输入密码(系统环境为:Ubuntu 14.04.2 LTS i686)
http://unix.stackexchange.com/questions/60213/gpg-asks-for-password-even-with-passphrase
=-=
I am in your exact same boat (it worked on Fedora but not Ubuntu). Here is an apparent work around I discovered:
echo your_password | gpg –passphrase-fd 0 your_file.gpg
Explanation: Passing 0 causes –passphrase-fd to read from STDIN rather than from a file. So, piping the passphrase will get –passphrase-fd to accept your specified password string.
=-=
所以最后退而求其次用的是 “–passphrase-fd 0” 这个方法替代(直接将密码文件的内容cat出来,然后管道传下去,效果和手动输入是一样的)
Ps:我测试了 –passphrase-file 和 –batch –no-tty –yes 都不行。
cat $passphrase | gpg --passphrase-fd 0 -c ${bak_path}/bak_${date_yyyymmdd}.zip #若命令正确执行,则会返回0,同时生成文件${bak_path}/bak_${date_yyyymmdd}.zip.pgg
直接使用上面的命令,或是手动执行包含该命令的脚本是可以正常执行的,但是,放入crontab之后就会报错:
gpg: cannot open tty `/dev/tty’: No such device or address
去网上搜索了之后发现有不少人也遇到了这个问题,原因什么的就不深究了,说下解决办法吧:
增加”–no-tty”和”–batch”选项
cat $passphrase | gpg --no-tty --batch --passphrase-fd 0 -c ${bak_path}/bak_${date_str}.zip
==
bpcs_uploader的使用
搜索关键字:
- vps baidu.com api
参考链接:
- https://www.haiyun.me/archives/859.html
- http://developer.baidu.com/console#manage/apilist!appid=6055048
- https://github.com/oott123/bpcs_uploader/
- 个人用什么网盘好,求推荐 – V2EX
- =
- http://mm.hanbobo.net/2015/04/08/Upload-YouTube-Video-from-VPS-to-Baiduyun/
- 利用百度网盘备份VPS
- http://oott123.github.io/bpcs_uploader/
- http://yanzhuang.net/2978.html
- curl调用百度网盘API分片上传大文件
- http://www.unixdo.com/Unix_Linux/bpcs_uploader.html
- http://www.freehao123.com/baiduyun-linux-vps/
- http://yangjunwei.com/a/1339.html
=EOF=