簡體   English   中英

SSH身份驗證失敗:Java JSCH

[英]SSH Authentication Fail : 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 git@github.my_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) ;

你想打開一個ssh連接作為git,而不是你。
然后,服務器端的公鑰將像您一樣對您進行身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM