无法验证com.trilead.ssh2.Connection

时间:2017-09-12 14:47:38

标签: java authentication connection java-7

Heyy!

我在com.trilead.ssh2.Connection中使用java 7打开连接。

测试时,我在端口localhost上打开与22的连接:

Connection connection = new Connection("localhost", 22);

然后我尝试使用authenticateWithPublicKey方法进行身份验证:

char[] key = IOUtils.toString(new FileInputStream("keyLocation")).toCharArray();
boolean authenticated = connection.authenticateWithPublicKey("myUsername", key, "");

但它没有进行身份验证。我正在mac sierra上运行,我想知道这是否有任何关系。我正在使用dsa对密钥。

谢谢!

1 个答案:

答案 0 :(得分:0)

我无法解决dsa对密钥(我相信它与密钥大小有关,而dsa是1024)。我创建了一个新的rsa对密钥,大小为2048。就像信息一样,我将编写成功管理从我的mac sierra配置的java代码验证连接的步骤:

我在.ssh/目录中:

ssh-keygen -t rsa -f 'key_name'
cat key_name.pub                # copy the public key
# add the public key to authorized_keys file
ssh-add -K key_name
ssh-add -A
ssh-add -l                      # just to check if key is added

就是这样,我设法验证连接。