cloud-transfer

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2018 License: MIT Imports: 16 Imported by: 0

README

cloud-transfer

云环境文件传输, 某些情况下2个环境(比如:测试环境, 生产环境)只能通过外网进行通信,但是又想在2个环境之间传输文件, 这样就可以通过本程序传输了.

传输方式

        tcp/加密                        SFTP   
客户端 -----------> 中转服务器(服务端) -----------> 目标服务器

安装

直接下载即可

使用说明

修改配置文件

编辑配置文件 app.conf

  • 修改监听端口 可以在命令行使用 -i 指定
  • 临时目录 存储文件的临时路径
  • peer对端的IP地址和端口,如果是服务端则不需要修改,如果是客户端则需要配置中转服务器的IP和端口
  • secret为的是验证双方是否可信,自行生成修改,可以在命令行参数指定
生成RSA密钥对 用于加密

如果需要加密传输则用以下的命令生成, 如果不需要则跳过该步骤,可以在中转服务器上生成,然后复制到客户端当前路径下,两端要用同一对密钥.

./cloud-transfer rsa -k -b 2048
  • -k 生成密钥对
  • -b 指定密钥的位数,默认 1024位
在中转服务器上启动服务端
./cloud-transfer cs --mode=server

程序既是服务端也是客户端, 通过--mode 参数指定, 默认是客户端: client

注意: 中转服务器和目标服务器之间要做ssh密钥信任,用于传输文件

客户端加密传输

首先是在客户端动态生成一个32位的随机字符串,然后使用rsa公钥加密该字符串,传输到服务端,服务端用私钥解密, 客户端用该随机字符串使用AES方式把数据加密, 然后服务端接收之后使用AES方式把数据解密还原

加密传输
./cloud-transfer cs -f /tmp/1.exe -d 192.168.33.13 -p 22 -u vagrant -r /tmp -e
  • -f 指定要传输文件的路径
  • -d 指定目标服务器的IP
  • -p 指定目标服务器的SSH端口
  • -u 指定目标服务器的SSH用户
  • -r 指定目标服务器的文件存储路径,要有写权限
  • -e 启用加密传输
直接传输
./cloud-transfer cs -f /tmp/1.exe -d 192.168.33.13 -p 22 -u vagrant -r /tmp

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL