JavaクライアントでJSchを使用してリモートサーバーに接続し、SFTPを使用していくつかのファイルを取得しています。次のコードは問題なく動作しています: -ユーザーを切り替える必要がある場合にJSchからSFTPを使用する
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);
問題は、サイトポリシーが変更されていることです。このユーザー(上記のuserName)として直接ログオンすることはできません。最初に私の個人ユーザーとしてログオンしてから、SFTPにしたいファイルにアクセスできるユーザーにsuを送信する必要があります。
私はこれを実現するために上記のコードをリファクタリングできるとは思わないので、代わりにシェルまたはexecチャネルを使用して調べ始めました。私はこれまでのところほとんど成功しておらず、Web上で例を見つけることができないようですので、適切な方向へのアドバイスや指導には非常に感謝しています。どうもありがとう。
ありがとうございました。私は間違いなくその記事を見ていきます。私もあなたの懸念に感謝しますが、政策立案者は、ユーザーがそのユーザーに合法的に許可されている限り、ポリシーに違反しないことを私に保証します。私は彼らが私がそのユーザーとして直接ログインできるようにしたいと思っていますが、まあいいえ! –