From 41c49ca95f3041e04a866d9ccee891e089744b1e Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Wed, 17 Sep 2025 18:43:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Fix=20the=20issue=20where=20SSH=20port?= =?UTF-8?q?=20changes=20are=20not=20synchronized=20to=20the=E2=80=A6=20(#1?= =?UTF-8?q?0398)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … local terminal Refs #10358 --- agent/app/service/ssh.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/agent/app/service/ssh.go b/agent/app/service/ssh.go index 8ab5ca28b..2e498ce0d 100644 --- a/agent/app/service/ssh.go +++ b/agent/app/service/ssh.go @@ -3,6 +3,7 @@ package service import ( "bytes" "encoding/base64" + "encoding/json" "fmt" "os" "os/user" @@ -208,6 +209,10 @@ func (u *SSHService) Update(req dto.SSHUpdate) error { if err := NewIFirewallService().UpdatePortRule(ruleItem); err != nil { global.LOG.Errorf("reset firewall rules %s -> %s failed, err: %v", req.OldValue, req.NewValue, err) } + newPort, _ := strconv.Atoi(req.NewValue) + if err := updateLocalConn(uint(newPort)); err != nil { + global.LOG.Errorf("update local conn for terminal failed, err: %v", err) + } } _, _ = cmd.RunDefaultWithStdoutBashCf("%s systemctl restart %s", sudo, serviceName) @@ -738,3 +743,28 @@ func loadEncryptioMode(content string) string { } return "" } + +func updateLocalConn(newPort uint) error { + conn, _ := settingRepo.GetValueByKey("LocalSSHConn") + if len(conn) == 0 { + return nil + } + connItem, err := encrypt.StringDecrypt(conn) + if err != nil { + return err + } + var data dto.SSHConnData + if err := json.Unmarshal([]byte(connItem), &data); err != nil { + return err + } + data.Port = newPort + connNew, err := json.Marshal(data) + if err != nil { + return err + } + connNewItem, err := encrypt.StringEncrypt(string(connNew)) + if err != nil { + return err + } + return settingRepo.Update("LocalSSHConn", connNewItem) +}