自动授权Travis CI上的SSH身份验证请求

时间:2013-05-19 19:26:05

标签: travis-ci

我正在我的构建中做一些事情,以便在我的travis测试中获得此输出。它挂起,因为我的测试无法接受或拒绝,测试失败:

The authenticity of host 'heroku.com (50.19.85.154)' can't be established.
RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1blah.
Are you sure you want to continue connecting (yes/no)? 

我和github.com有类似的问题,但我改为只读网址。而不是为每个托管git repo的x.com处理这个问题,有没有办法让travis只通过ssh自动授权任何auth请求?我可以通过以下方式在本地进行此操作:http://debuggable.com/posts/disable-strict-host-checking-for-git-clone:49896ff3-0ac0-4263-9703-1eae4834cda3是否可以在Travis上设置类似的内容?

4 个答案:

答案 0 :(得分:29)

好的,我想我明白了。一个选项是在before_script中将这些行添加到〜/ .ssh / config中,如下所示:

before_script:
  - echo -e "Host heroku.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
  - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
似乎要做的伎俩。

答案 1 :(得分:12)

有新的travis内置设置

只需将其添加到您的配置

即可
addons:
  ssh_known_hosts:
  - git.example.com

https://docs.travis-ci.com/user/ssh-known-hosts/

答案 2 :(得分:4)

如果你使用travis-ci收到此错误,可能是因为你的gems文件中的一个gem正在使用github @git

例如:

gem 'pi_piper', :git => 'git@github.com:bguest/pi_piper.git', :branch => 'stub-driver'

需要看起来像这样

gem 'pi_piper', :git => 'https://github.com/bguest/pi_piper.git', :branch => 'stub-driver'

答案 3 :(得分:1)

一个更好的选择是让travis知道它实际上是受信任的主机,而不是像公认的答案那样降低您的安全性。

他们的文档详细介绍了此

https://docs.travis-ci.com/user/ssh-known-hosts/#mitigations-and-workarounds

基本上,从服务器上获取公钥,并将其添加到travis的.travis.yml中的known_hosts文件中:

install:
  - echo 'full_server_public_key_goes_here' >> $HOME/.ssh/known_hosts