mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-19 05:49:02 +08:00
fix: Fix the issue where SSH port changes are not synchronized to the… (#10398)
… local terminal Refs #10358
This commit is contained in:
parent
1999f102bf
commit
41c49ca95f
1 changed files with 30 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package service
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/user"
|
"os/user"
|
||||||
|
|
@ -208,6 +209,10 @@ func (u *SSHService) Update(req dto.SSHUpdate) error {
|
||||||
if err := NewIFirewallService().UpdatePortRule(ruleItem); err != nil {
|
if err := NewIFirewallService().UpdatePortRule(ruleItem); err != nil {
|
||||||
global.LOG.Errorf("reset firewall rules %s -> %s failed, err: %v", req.OldValue, req.NewValue, err)
|
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)
|
_, _ = cmd.RunDefaultWithStdoutBashCf("%s systemctl restart %s", sudo, serviceName)
|
||||||
|
|
@ -738,3 +743,28 @@ func loadEncryptioMode(content string) string {
|
||||||
}
|
}
|
||||||
return ""
|
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)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue