SSH 身份验证失败:Java JSCH
SSH Authentication Fail : Java JSCH
我的用户需要根据他的 Git 存储库验证他的私钥。它类似于任何数据库客户端工具中的 "Test Connection" 按钮。
我正在使用 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 论坛,给出的解决方案是在相应的服务器中添加 Public 密钥。我做到了,我能够使用我的 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) ;
您想以 git 的身份打开 ssh 连接,而不是以您的身份。
然后您在服务器端的 public 密钥将验证您的身份。
我的用户需要根据他的 Git 存储库验证他的私钥。它类似于任何数据库客户端工具中的 "Test Connection" 按钮。
我正在使用 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 论坛,给出的解决方案是在相应的服务器中添加 Public 密钥。我做到了,我能够使用我的 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) ;
您想以 git 的身份打开 ssh 连接,而不是以您的身份。
然后您在服务器端的 public 密钥将验证您的身份。