我正在尝试使用rsync将文件与Travis和GitHub一起上传到我的服务器,我在deploy.sh脚本rsync -avhP $f deploy@multicrew.co.uk:/var/www/test/
中有这一行,每当我尝试上传$ f文件时,我都会收到此错误:
ssh: connect to host multicrew.co.uk port 22: Cannot assign requested address
在我的.travis.yml文件中,我有这段代码
addons:
ssh_known_hosts: multicrew.co.uk
before_install:
- openssl aes-256-cbc -K $encrypted_8c9513462553_key -iv $encrypted_8c9513462553_iv -in deploy/deploy_rsa.enc -out /tmp/deploy_rsa -d
- eval "$(ssh-agent -s)"
- chmod 600 /tmp/deploy_rsa
- ssh-add /tmp/deploy_rsa
- chmod +x deploy/deploy.sh
after_success: "deploy/deploy.sh"
我不知道为什么rsync无法分配请求的地址,我在CloudFlare中设置了一个A名称记录,它将multicrew.co.uk转发到我的服务器的IP
答案 0 :(得分:2)
您获得的错误看起来像是由杰出的issue with IPv6 on Travis CI引起的。
但是,因为在撰写本文时,您的multicrew.co.uk域名由Cloudflare和Cloudflare only proxies HTTP traffic代理,因此禁用IPv6的建议修补程序将无效。
您需要使用create a separate non-proxied (grey cloud) hostname来使用SSH / RSYNC,更改rsync命令以直接连接到服务器IP地址,或禁用Cloudview代理以获取multiview.co.uk主机名。
请注意,在DNS中添加非代理主机名将公开服务器的IP地址。您可能希望将服务器上的访问权限仅限于Travis CI和Cloudflare IP范围(例如,使用防火墙规则或在Web服务器配置中)。