JSch在SSH服务器上

时间:2015-08-04 16:15:55

标签: java jsch

我正在使用JSch编写应用程序。此应用程序应该对用户进行一次身份验证,然后将用户名和密码存储在该会话中。 因此,我只需要连接到服务器进行身份验证。 我稍后只会从服务器读取文件,因此只需要SFTP权限。

从现在开始,我将通过读取预定义文件的内容来验证用户身份。但这对性能不利,文件必须存在于服务器上。还有其他更好的解决方案吗?

修改 我会在这里澄清我的问题,所以如果你不明白我想做什么,请继续阅读。

我想拥有的内容:我有一个应用程序,您必须先登录。当用户登录时,用户名和密码将存储在用户会话中,并将用于所有请求。登录后,用户可以从服务器读取一些文件。使用先前保存的凭据通过SFTP访问这些文件。

问题:我不知道如何在登录到应用程序时验证用户凭据,而无需访问服务器上的文件。

我的解决方法:我尝试解决问题,在登录期间从服务器读取预定义的小文件,并在可以读取文件时接受凭据。

我的问题:我想知道,如果有更好的解决方案,比如只是在服务器上验证用户的功能,那么我可以肯定,输入的凭据是正确的。或者,甚至更好的是,当用户登录时,我可以打开与服务器的连接,并使用此连接进行进一步的请求,而无需发送凭据。

1 个答案:

答案 0 :(得分:2)

只需创建一个新的Session并致电.connect()

Session session = jsch.getSession("username", "host");
session.setPassword("password");
session.connect();
session.disconnect();

您必须已为传输准备此代码。

无论如何,你是对的,一个更好的解决方案肯定是保持会话开放。

只需连接,保留对Session实例的引用,并将其重新用于将来的所有传输。