Я использую JSch для получения данных с удаленного сервера на коммутаторе парчи. Создается новый сеанс и открывается новый канал с типом «shell». У меня есть несколько команд, которые выбирают данные с этого сервера. Я создал новый канал для каждой команды и отключаю канал после извлечения данных.
Теперь в журнале аудита на сервере отображается новый логин для каждого канала, который я создал для каждой команды.
Должен ли вход в систему показываться для каждой созданной сессии вместо каждого подключенного канала?
public Session getSession(String hostName,
String username,
String password,
Integer port) throws Exception {
Session session = null;
try {
JSch jsch = new JSch();
if (port == null) {
port = 22;
}
session = jsch.getSession(username, hostName, port);
session.setPassword(password);
session.setConfig("max_input_buffer_size", Integer.toString(100 * 1024 * 1024));
session.setConfig("StrictHostKeyChecking", "no");
session.setConfig("UserKnownHostsFile", "/dev/null");
session.connect(15 * 1000);
} catch (Exception e) {
if (session != null) {
session.disconnect();
}
throw new Exception("Error in connecting to: " + hostName, e);
}
return session;
}
private Channel getChannel(Session session,String type) throws Exception {
if (session == null || !session.isConnected()) {
session = getSession();
}
Channel channel = null;
try {
channel = session.openChannel(type);
} catch (Exception e) {
throw e;
}
channel.setInputStream(null);
return channel;
}