【问题标题】:JSch Session ConnectingJSch 会话连接
【发布时间】:2012-05-20 13:00:17
【问题描述】:

您好,我正在尝试通过 ssh 隧道连接到服务器上的数据库,但我什至无法连接 Jsch 会话。我试图在 GWT 中将其作为后端代码的一部分。所以这是在服务器端代码的实现部分。 我一般对服务器不是很熟悉。通常在终端输入:

ssh -x 用户名@xxxxx.xxx.edu

然后我被提示输入我的密码,我输入密码然后我就进入了。

所以在java中我的代码如下:

String host="xxxxx.xxx.edu";

String user="username";
String password="password";

Session session= null;
try{
            //Set StrictHostKeyChecking property to no to avoid UnknownHostKey issue
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            JSch jsch = new JSch();
            session=jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.setConfig(config);
            session.connect();
}

我已经仔细检查了用户名和密码以及主机字符串,它们都是我在终端中成功使用的。

我在 'session.connect()' 行得到的错误如下:(向右滚动查看整个错误)

com.jcraft.jsch.JSchException: java.security.AccessControlException: access denied (java.net.SocketPermission xxxxx.xxx.edu resolve)
at com.jcraft.jsch.Util.createSocket(Util.java:341)
at com.jcraft.jsch.Session.connect(Session.java:194)
at com.jcraft.jsch.Session.connect(Session.java:162)
at com.front.server.GameServiceImpl.createGame(GameServiceImpl.java:39)

我有什么遗漏吗?这与我在终端中通过 ssh 登录所做的不同吗?我也尝试在主机字符串前添加 'ssh://',但无济于事。

提前致谢!

【问题讨论】:

    标签: java gwt jdbc ssh jsch


    【解决方案1】:

    根据异常信息,问题似乎不是来自JSch。

    请参阅 java.sun.com 上的Security and Permissions

    使用安全管理器调用的所有小程序和任何应用程序都必须 被授予访问本地系统资源的明确权限 从对目录及其子目录的读取访问权限 程序被调用。 Java 平台提供权限以允许 对不同类型的本地信息的不同级别的访问。

    ,请参阅SocketPermission 部分。

    【讨论】:

      【解决方案2】:

      我发现上面的代码没有问题。我将它复制/粘贴到一个简单的 java main 中,它工作正常。将相同的代码放在 GWT 后端似乎有问题。

      【讨论】:

        猜你喜欢
        • 2017-12-18
        • 2014-10-20
        • 2016-05-02
        • 2012-10-01
        • 2012-04-02
        • 2021-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多