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