Ich verwende JSch in einem Java-Client, um eine Verbindung zu einem Remote-Server herzustellen und einige Dateien mithilfe von SFTP zu erhalten. Der folgende Code gearbeitet hat gut für mich: -Mit JSch zu SFTP, wenn man auch Benutzer wechseln muss
JSch ssh = new JSch();
JSch.setConfig(FileTransferConstants.STRICT_HOST_KEY_CHECKING, FileTransferConstants.NO);
Session session = ssh.getSession(userName, host, port);
session.setPassword(password);
session.connect();
Channel channel = session.openChannel(FileTransferConstants.SFTP);
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.cd(remoteDirectoryPath);
sftp.lcd(localDirectoryPath);
sftp.get(remoteDirectoryPath + remoteFileName, remoteFileName);
Das Problem ist, dass es jetzt eine Änderung der Standortpolitik gewesen ist. Ich darf mich nicht mehr direkt als dieser Benutzer anmelden (Benutzername oben). Ich muss mich zuerst als mein persönlicher Benutzer anmelden und dann su in den Benutzer, der Zugriff auf die Dateien hat, die ich zu SFTP haben möchte.
Ich glaube nicht, dass es sowieso gibt, ich kann den obigen Code umgestalten, um dies zu erreichen, und so habe ich angefangen, stattdessen einen Shell- oder Exec-Kanal zu verwenden. Ich habe bisher wenig Erfolg gehabt und finde keine Beispiele im Internet, daher wäre ich für jeden Rat oder Hinweise in die richtige Richtung sehr dankbar. Danke vielmals.
Vielen Dank Martin und ich werde auf jeden Fall diesen Artikel betrachten. Ich schätze Ihre Besorgnis auch, aber die politischen Entscheidungsträger versichern mir, dass, solange mein Benutzer berechtigt ist, diesen Benutzer zu unterstützen, dies nicht gegen die Richtlinien verstößt. Ich wünschte nur, sie würden mir erlauben, mich direkt als dieser Benutzer anzumelden - aber leider nein! –