SSH验证失败:Java JSCH

阿伦

我的用户需要根据其Git存储库验证其私钥。它类似于任何DB Client工具中的“测试连接”按钮。

我正在使用JSCH在Java中进行此验证(我只需要使用SSH进行连接并告诉连接成功)即可。下面是我的Java代码

public class SSHConnect {


    private String filePath = "c:\\me\\ssh-keys\\config_31_jan";


    public static void main(String... args) {
         new SSHConnect().invoke();
    }

    public void invoke () {
        JSch jSch = new JSch();
        try {

            jSch.addIdentity(filePath);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            Session session = jSch.getSession("MY_USER_NAME","github.my_company.com",22) ;
            session.setConfig(config);
            session.connect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我得到以下异常。

c:\me\ssh-keys\config_31_jan
com.jcraft.jsch.JSchException: Auth fail
    at com.jcraft.jsch.Session.connect(Session.java:519)
    at com.jcraft.jsch.Session.connect(Session.java:183)
    at com.pcfdev.main.SSHConnect.invoke(SSHConnect.java:32)
    at com.pcfdev.main.SSHConnect.main(SSHConnect.java:18)

我引用了所有其他SO论坛,给出的解决方案是在相应的服务器中添加公钥。我做到了,并且能够使用我的SSH命令成功进行身份验证(如下所述)。但是我无法使用JSCH达到同样的效果。请帮忙

WGC1008Q5B8H2 MINGW64 /c/me/ssh-keys
$ ssh -i config_31_jan -T [email protected]_company.com
Hi ARUNK2/spring-cloudconfig! You've successfully authenticated, but GitHub does not provide shell access.
 jSch.getSession("MY_USER_NAME","github.my_company.com",22) ;

应该改为:

 jSch.getSession("git","github.my_company.com",22) ;

您想以git(而不是您)的身份打开ssh连接。
然后,服务器端的公钥将对您进行身份验证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章