From 3227a50f9a4f7ac546704150afa9191fb13b09a9 Mon Sep 17 00:00:00 2001 From: shiran Date: Mon, 8 Jun 2026 11:33:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(vm):=20=E8=99=9A=E6=8B=9F=E6=9C=BA?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=96=B0=E5=A2=9E=20SSH=20=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/views/user-vm/UserVmDetail.vue | 10 ++++++++++ src/views/virtualization/VmDetail.vue | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/views/user-vm/UserVmDetail.vue b/src/views/user-vm/UserVmDetail.vue index 4376499..f6c15e4 100644 --- a/src/views/user-vm/UserVmDetail.vue +++ b/src/views/user-vm/UserVmDetail.vue @@ -36,6 +36,7 @@
VNC + SSH连接 启动 重启 关机 @@ -1407,6 +1408,15 @@ const loadSgLockInfo = async () => { const vncVisible = ref(false) const vncLoading = ref(false) const vncResult = ref(null) +const handleSshConnect = () => { + const host = vmPublicIpList.value[0] + if (!host) return ElMessage.warning('无可用公网 IP') + const username = isWindows.value ? 'Administrator' : 'root' + const password = vm.value?.root_password || '' + const encodedPwd = btoa(password) + window.open(`https://webssh1.007yjs.com/?hostname=${encodeURIComponent(host)}&username=${encodeURIComponent(username)}&password=${encodedPwd}`, '_blank') +} + const handleVnc = async () => { vncVisible.value = true; vncLoading.value = true; vncResult.value = null try { diff --git a/src/views/virtualization/VmDetail.vue b/src/views/virtualization/VmDetail.vue index da87bc2..18ca704 100644 --- a/src/views/virtualization/VmDetail.vue +++ b/src/views/virtualization/VmDetail.vue @@ -18,6 +18,7 @@
远程连接 + SSH连接 关机 更多 @@ -2783,6 +2784,15 @@ const loadVncNodes = async () => { } catch { /* */ } } +const handleSshConnect = () => { + const host = publicIpList.value[0] + if (!host) return ElMessage.warning('无可用公网 IP') + const username = isWindows.value ? 'Administrator' : 'root' + const password = detail.value?.root_password || '' + const encodedPwd = btoa(password) + window.open(`https://webssh1.007yjs.com/?hostname=${encodeURIComponent(host)}&username=${encodeURIComponent(username)}&password=${encodedPwd}`, '_blank') +} + const handleGetVnc = async () => { vncNodeId.value = null vncResult.value = null