JSch 在 SSH 服务器上验证用户
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
实例的引用,并在以后的所有传输中重复使用它。
我正在使用 JSch 编写应用程序。此应用程序应该对用户进行一次身份验证,然后将用户名和密码存储在该会话中。 因此,我需要一次连接到服务器以进行身份验证。 我以后只会从服务器读取文件,所以只需要SFTP权限。
从现在开始,我将通过读取预定义文件的内容来对用户进行身份验证。但这对性能不利,并且文件必须存在于服务器上。还有其他更好的解决方案吗?
编辑: 我会尽力在这里澄清我的问题,所以如果你不明白我想做什么,请继续阅读。
我想要的是:我有一个应用程序,你必须先登录。当用户登录时,用户名和密码存储在用户会话中,并将用于所有请求。登录后,用户可以从服务器读取一些文件。使用之前保存的凭据通过 SFTP 访问这些文件。
问题:我不知道如何在他登录到应用程序后立即验证用户凭据,而不访问服务器上的文件。
我的解决方法:我尝试通过在登录期间从服务器读取预定义的小文件并在可以读取文件时接受凭据来解决该问题。
我的问题:我想知道,是否有更好的解决方案,比如只在服务器上验证用户的功能,所以我可以确定,输入的凭据是正确的。或者,更好的是,当用户登录时,我可以打开到服务器的连接,并使用此连接进行进一步的请求,而无需发送凭据。
只需创建一个新的 Session
并调用 .connect()
。
Session session = jsch.getSession("username", "host");
session.setPassword("password");
session.connect();
session.disconnect();
您必须已准备好此代码才能进行转账。
无论如何,你是对的,更好的解决方案肯定是保持会话打开。
只需连接,保留对 Session
实例的引用,并在以后的所有传输中重复使用它。