2012-06-14 48 views
2

我正在使用red hat linux。我试图运行这个命令:当我发出g8命令时,Github未通过身份验证

g8 typesafehub/play-scala

而且我得到这样的响应:

异常来自未通过身份验证

github上对获取但是,当我检查连接使用

openssl s_client -connect github.com:443 

我得到这个:

验证返回码:0(OK)

这意味着我能够与github上连接。为什么这个命令不起作用?

g8 typesafehub/play-scala

回答

1

如果它真的是一个身份验证问题,请检查您~/.g8/config文件authentication purpose,但你不应该需要它的匿名访问。

请注意,根据issue 32 of giter8,它也可能取决于您正在使用的Java。
例如:

对不起,OpenJDK 7的那预览版不适合用于一般用途。 (在mac上也有giter8问题#27,特别针对openjdk)。我用giter8测试了openjdk 7〜b147-2.0-0ubuntu0.11.10.1并且工作正常,所以当最终版本可用于mac时,你应该能够使用它。

现在,请尝试使用jdk 6,如果仍有问题,请重新打开。

另一个JDK(OpenJDK的)最终可能使用了错误的TrustManager,如“Avoiding the "javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated" with HttpClient

4

我也遇到了这个问题,我现在用的openjdk 6 VM RHEL 5图像上。这是另一个注意看看TrustManager提示我在修复。我调整了调用为github添加信任设置;在我的情况下,它解决了同行认证问题。

首先使用opensslkeytool获取github证书,以使其可以访问java。

g8 \ 
    \ -Djavax.net.ssl.trustStore=$HOME/g8.truststore \ 
    \ -Djavax.net.ssl.trustStorePassword=g8g8g8 \ 
    $* 

现在尝试执行G8 -v typesafehub/akka-scala-sbt和我看到的东西非常愿意现在:

echo "" | openssl s_client -connect www.github.com:443 \ 
    -showcerts 2>/dev/null | openssl x509 -out github.cert 
keytool -import -alias github \ 
    -file github.cert -storepass g8g8g8 \ 
    -keystore $HOME/g8.truststore 

我们有一个脚本我称之为“G8”重写调用。我想象一下设置一个系统范围的默认信任存储可能会更好,但我还没有想到这一点。

0

我和B Evans有同样的问题(谢谢你!),但是在Windows中,所以这里是相同的代码,以防其他人有这个问题,并且不知道如何从Windows cmd执行它。我也不得不从http://www.openssl.org/related/binaries.html

openssl s_client -connect www.github.com:443 -showcerts > out.txt 
openssl x509 -out github.cert < out.txt 
keytool -import -alias github -file github.cert \ 
-storepass g8g8g8 -keystore C:\tmp\g8.truststore 

获得的OpenSSL然后添加相同,以JAVA_OPTS(我也不得不面对我们的企业防火墙和代理服务器,因此也...)

SET JAVA_OPTS=-Dhttp.proxyHost=our.proxy.com -Dhttp.proxyPort=8080 \ 
-Dhttps.proxyHost=our.proxy.com -Dhttps.proxyPort=8080 \ 
-Djavax.net.ssl.trustStore=C:\tmp\g8.truststore \ 
-Djavax.net.ssl.trustStorePassword=g8g8g8 
相关问题