首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ganymed SSH2 java

ganymed SSH2 java
EN

Stack Overflow用户
提问于 2012-08-01 03:14:09
回答 2查看 2.6K关注 0票数 0

我正在使用ganymed SSH2 java库连接到使用公钥身份验证的服务器。我已经创建了公钥/私钥对,并将公钥(mykey.pub)上传到我的服务器的/.ssh2目录中。我在本地机器上有私钥。

密钥信息:2048位动态加速密钥对(ssh2)

我正在做这样的事情:

代码语言:javascript
复制
File keyfile = new File("C:\\keys\\mykey");                  
String keyfilePass = "a"; // will be ignored if not needed

        try
        {

            Connection conn = new Connection(hostname);
            conn.connect();


            boolean isAuthenticated = conn.authenticateWithPublicKey("myusername", keyfile, keyfilePass); 
           //I get an error at this line

我得到的错误是:

代码语言:javascript
复制
Caused by: java.io.IOException: Invalid PEM structure, '-----BEGIN...' missing
    at ch.ethz.ssh2.crypto.PEMDecoder.parsePEM(PEMDecoder.java:138)

有人能帮上忙吗?有没有比这个更好的库呢?

编辑:密钥文件

代码语言:javascript
复制
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: username    Comment: "2048-bit dsa, username@host, Tue Jul 31 2012 13:12:48 -\
0500"
KEY   
---- END SSH2 ENCRYPTED PRIVATE KEY ----

解决方案:

我解决了这个问题,必须将密钥转换为OPENSSH格式(为此我使用了puttygen )。此java库只接受openssh格式的私钥。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-01 07:16:03

您可以自己看到密钥的格式不是预期的格式。你是如何生成它的?

票数 1
EN

Stack Overflow用户

发布于 2012-08-01 10:19:12

标题"BEGIN SSH2 ENCRYPTED PRIVATE KEY“表示您的私钥是由ssh.com的专有ssh系统生成的。

有没有比这个更好的库呢?

如果您的密钥未加密,JSch将接受它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11747341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档