[英]JSch authenticate user on SSH server
我正在使用JSch编写应用程序。 该应用程序应该对用户进行一次身份验证,然后在该会话中存储用户名和密码。 因此,我仅需要进行一次身份验证就连接到服务器。 稍后,我将仅从服务器读取文件,因此仅需要SFTP权限。
从现在开始,我将通过读取预定义文件的内容来对用户进行身份验证。 但这对性能不利,文件必须存在于服务器上。 还有其他更好的解决方案吗?
编辑:我将在这里尝试澄清我的问题,因此,如果您不理解我的意图,请继续阅读。
我要拥有的东西:我有一个应用程序,您必须首先登录。 用户登录时,用户名和密码将存储在用户会话中,并将用于所有请求。 登录后,用户可以从服务器读取一些文件。 这些文件可以使用以前保存的凭据通过SFTP访问。
问题:当用户登录到应用程序时,我不知道如何验证用户凭据,而又不访问服务器上的文件。
我的解决方法:我尝试通过在登录期间从服务器读取预定义的小文件并接受凭据(当可以读取文件时)来解决该问题。
我的问题:我想知道是否有更好的解决方案,例如仅对服务器上的用户进行身份验证的功能,因此可以确定输入的凭据是正确的。 或者,也许更好,当用户登录时,我可以打开与服务器的连接,并使用该连接进行进一步的请求,而无需发送凭据。
只需创建一个新的Session
并调用.connect()
。
Session session = jsch.getSession("username", "host");
session.setPassword("password");
session.connect();
session.disconnect();
您必须已经有此代码才能进行传输。
无论如何,您是对的,更好的解决方案肯定是保持会话打开。
只需连接,保留对Session
实例的引用,并将其重用于以后的所有传输。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.