我正在尝试使用JSch库连接到SFTP服务器。当我运行此类时,它要求输入用户名和密码。是否有可能在不询问用户名和密码的情况下自动进行连接?如果无法使用JSch库,是否还有其他库可以做到这一点?谢谢!
我的代码和结果是:
import java.util.Properties;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class SFTPTest {
public static void main(String[] args) throws JSchException, SftpException {
String hostname = "hostname";
int port = 22;
String user = "myUser";
String pass = "myPass";
try {
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
JSch ssh = new JSch();
Session session = ssh.getSession(user, hostname, port);
session.setConfig(config);
session.setPassword(pass);
session.connect();
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
sftp.connect();
// display home directory
System.out.println("Home directory is: " + sftp.pwd());
sftp.disconnect();
session.disconnect();
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
结果是:
Kerberos username: myUser
Kerberos password for myUser: myPass
Home directory is: /