0
在多模塊Scala項目中,我運行了幾個集成測試,我使用scala-ssh
(v。0.8)通過SSH連接到遠程計算機並從那裏傳輸文件。在sbt會話中不允許多個SSH連接
如果我運行在sbt
會話集成測試一次,一切正常 - 我可以連接到本機和下載的任何文件。的Scala代碼的相關位是:如果我嘗試運行相同的sbt
會話中相同的測試(或其他集成測試)發生
private lazy val fileInventory: AnsibleYamlFileInventory = {
val inventory = SSH(ansibleHost, HostResourceConfig()) { client =>
client.fileTransfer {
scp =>
val tmpLocalFile = Files.createTempFile("inventory", ".yaml")
scp.download(remoteYamlInventoryFile, tmpLocalFile.toAbsolutePath.toString)
new AnsibleYamlFileInventory(tmpLocalFile)
}
}
inventory.fold(s => throw new RuntimeException(s), identity)
}
的問題。我得到同樣的錯誤消息中提到here:
14:32:11.751 [reader] ERROR net.schmizz.sshj.transport.TransportImpl - Dying because - {}
net.schmizz.sshj.common.SSHRuntimeException: null
at net.schmizz.sshj.common.Buffer.readPublicKey(Buffer.java:432)
at net.schmizz.sshj.transport.kex.AbstractDHG.next(AbstractDHG.java:75)
at net.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:367)
at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:509)
at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:107)
at net.schmizz.sshj.transport.Decoder.received(Decoder.java:175)
at net.schmizz.sshj.transport.Reader.run(Reader.java:60)
Caused by: java.security.GeneralSecurityException: java.security.spec.InvalidKeySpecException: key spec not recognised
at net.schmizz.sshj.common.KeyType$3.readPubKeyFromBuffer(KeyType.java:156)
at net.schmizz.sshj.common.Buffer.readPublicKey(Buffer.java:430)
... 6 common frames omitted
Caused by: java.security.spec.InvalidKeySpecException: key spec not recognised
at org.bouncycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi.engineGeneratePublic(Unknown Source)
at org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.engineGeneratePublic(Unknown Source)
at java.security.KeyFactory.generatePublic(KeyFactory.java:334)
at net.schmizz.sshj.common.KeyType$3.readPubKeyFromBuffer(KeyType.java:154)
... 7 common frames omitted
如果我殺了那個sbt
會議並重新啓動一個又一個,問題重新出現之前,我可以再次運行只有一個單一的集成測試。
我已經按照建議安裝了JCE 8文件。所以,我想知道我需要解決什麼問題,以便讓多個測試成功運行,並且可以一個接一個地將ssh傳入該遠程計算機。
請編輯您的問題,包括您正在運行的代碼以及包含堆棧跟蹤在內的確切錯誤。不要鏈接到一些github頁面,並讓人們猜測你得到的錯誤。 – Kenster
@Kenster,感謝您的評論 - 我更新了這個問題。 – xeroqu