From 6467816896745d00a75adc2b249374b0a9db22f8 Mon Sep 17 00:00:00 2001 From: xyli Date: Tue, 14 Feb 2023 15:06:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9SshService.java=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0getSession=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mpms/service/node/ssh/SshService.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/mpms/service/node/ssh/SshService.java b/src/main/java/mpms/service/node/ssh/SshService.java index 0d5b603..1d66aff 100644 --- a/src/main/java/mpms/service/node/ssh/SshService.java +++ b/src/main/java/mpms/service/node/ssh/SshService.java @@ -85,4 +85,31 @@ public class SshService extends BaseOperService implements BaseDynamic }); return sshList; } + + public static Session getSession(SshModel sshModel) { + Session session; + if (sshModel.getConnectType() == SshModel.ConnectType.PASS) { + session = JschUtil.openSession(sshModel.getHost(), sshModel.getPort(), sshModel.getUser(), sshModel.getPassword()); + + } else if (sshModel.getConnectType() == SshModel.ConnectType.PUBKEY) { + File tempPath = ConfigBean.getInstance().getTempPath(); + String sshFile = StrUtil.emptyToDefault(sshModel.getId(), IdUtil.fastSimpleUUID()); + File ssh = FileUtil.file(tempPath, "ssh", sshFile); + FileUtil.writeString(sshModel.getPrivateKey(), ssh, CharsetUtil.UTF_8); + byte[] pas = null; + if (StrUtil.isNotEmpty(sshModel.getPassword())) { + pas = sshModel.getPassword().getBytes(); + } + session = JschUtil.openSession(sshModel.getHost(), sshModel.getPort(), sshModel.getUser(), FileUtil.getAbsolutePath(ssh), pas); + } else { + throw new IllegalArgumentException("不支持的模式"); + } + try { + session.setServerAliveInterval((int) TimeUnit.SECONDS.toMillis(5)); + session.setServerAliveCountMax(5); + } catch (JSchException ignored) { + } + return session; + + } } -- Gitee