From 6811eb290fba84e642a7dbc729763d10ce53d97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Fri, 23 Jan 2026 05:44:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=87=8D=E5=A4=8D=E7=9A=84SSH=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/biz/safe.go | 2 -- internal/data/safe.go | 42 -------------------------- internal/route/http.go | 2 -- internal/service/safe.go | 29 ------------------ web/src/api/panel/safe/index.ts | 2 -- web/src/views/firewall/SettingView.vue | 20 +----------- 6 files changed, 1 insertion(+), 96 deletions(-) diff --git a/internal/biz/safe.go b/internal/biz/safe.go index 4d55c3c3..655778fe 100644 --- a/internal/biz/safe.go +++ b/internal/biz/safe.go @@ -3,8 +3,6 @@ package biz import "context" type SafeRepo interface { - GetSSH() (uint, bool, error) - UpdateSSH(ctx context.Context, port uint, status bool) error GetPingStatus() (bool, error) UpdatePingStatus(ctx context.Context, status bool) error } diff --git a/internal/data/safe.go b/internal/data/safe.go index 6997c517..1a42553b 100644 --- a/internal/data/safe.go +++ b/internal/data/safe.go @@ -6,13 +6,10 @@ import ( "log/slog" "strings" - "github.com/spf13/cast" - "github.com/acepanel/panel/internal/biz" "github.com/acepanel/panel/pkg/firewall" "github.com/acepanel/panel/pkg/os" "github.com/acepanel/panel/pkg/shell" - "github.com/acepanel/panel/pkg/systemctl" ) type safeRepo struct { @@ -33,45 +30,6 @@ func NewSafeRepo(log *slog.Logger) biz.SafeRepo { } } -func (r *safeRepo) GetSSH() (uint, bool, error) { - out, err := shell.Execf("cat /etc/ssh/sshd_config | grep 'Port ' | awk '{print $2}'") - if err != nil { - return 0, false, err - } - - running, err := systemctl.Status(r.ssh) - if err != nil { - return 0, false, err - } - - return cast.ToUint(out), running, nil -} - -func (r *safeRepo) UpdateSSH(ctx context.Context, port uint, status bool) error { - oldPort, err := shell.Execf("cat /etc/ssh/sshd_config | grep 'Port ' | awk '{print $2}'") - if err != nil { - return err - } - - _, _ = shell.Execf("sed -i 's/#Port %s/Port %d/g' /etc/ssh/sshd_config", oldPort, port) - _, _ = shell.Execf("sed -i 's/Port %s/Port %d/g' /etc/ssh/sshd_config", oldPort, port) - - if !status { - if err = systemctl.Stop(r.ssh); err != nil { - return err - } - } else { - if err = systemctl.Restart(r.ssh); err != nil { - return err - } - } - - // 记录日志 - r.log.Info("ssh settings updated", slog.String("type", biz.OperationTypeSafe), slog.Uint64("operator_id", getOperatorID(ctx)), slog.Uint64("port", uint64(port)), slog.Bool("status", status)) - - return nil -} - func (r *safeRepo) GetPingStatus() (bool, error) { out, err := shell.Execf(`firewall-cmd --list-rich-rules`) if err != nil { // 可能防火墙已关闭等 diff --git a/internal/route/http.go b/internal/route/http.go index 0b17ee71..de9afa16 100644 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -382,8 +382,6 @@ func (route *Http) Register(r *chi.Mux) { }) r.Route("/safe", func(r chi.Router) { - r.Get("/ssh", route.safe.GetSSH) - r.Post("/ssh", route.safe.UpdateSSH) r.Get("/ping", route.safe.GetPingStatus) r.Post("/ping", route.safe.UpdatePingStatus) }) diff --git a/internal/service/safe.go b/internal/service/safe.go index 0f6bcdd8..13f1510d 100644 --- a/internal/service/safe.go +++ b/internal/service/safe.go @@ -3,8 +3,6 @@ package service import ( "net/http" - "github.com/libtnb/chix" - "github.com/acepanel/panel/internal/biz" "github.com/acepanel/panel/internal/http/request" ) @@ -19,33 +17,6 @@ func NewSafeService(safe biz.SafeRepo) *SafeService { } } -func (s *SafeService) GetSSH(w http.ResponseWriter, r *http.Request) { - port, status, err := s.safeRepo.GetSSH() - if err != nil { - Error(w, http.StatusInternalServerError, "%v", err) - return - } - Success(w, chix.M{ - "port": port, - "status": status, - }) -} - -func (s *SafeService) UpdateSSH(w http.ResponseWriter, r *http.Request) { - req, err := Bind[request.SafeUpdateSSH](r) - if err != nil { - Error(w, http.StatusUnprocessableEntity, "%v", err) - return - } - - if err = s.safeRepo.UpdateSSH(r.Context(), req.Port, req.Status); err != nil { - Error(w, http.StatusInternalServerError, "%v", err) - return - } - - Success(w, nil) -} - func (s *SafeService) GetPingStatus(w http.ResponseWriter, r *http.Request) { status, err := s.safeRepo.GetPingStatus() if err != nil { diff --git a/web/src/api/panel/safe/index.ts b/web/src/api/panel/safe/index.ts index 031f609a..7af0243d 100644 --- a/web/src/api/panel/safe/index.ts +++ b/web/src/api/panel/safe/index.ts @@ -1,8 +1,6 @@ import { http } from '@/utils' export default { - ssh: (): any => http.Get('/safe/ssh'), - updateSsh: (status: boolean, port: number): any => http.Post('/safe/ssh', { status, port }), pingStatus: (): any => http.Get('/safe/ping'), updatePingStatus: (status: boolean): any => http.Post('/safe/ping', { status }) } diff --git a/web/src/views/firewall/SettingView.vue b/web/src/views/firewall/SettingView.vue index a7752f7c..cc88e9b6 100644 --- a/web/src/views/firewall/SettingView.vue +++ b/web/src/views/firewall/SettingView.vue @@ -6,18 +6,12 @@ import { useGettext } from 'vue3-gettext' const { $gettext } = useGettext() const model = ref({ firewallStatus: false, - sshStatus: false, - pingStatus: false, - sshPort: 22 + pingStatus: false }) useRequest(firewall.status).onSuccess(({ data }) => { model.value.firewallStatus = data }) -useRequest(safe.ssh).onSuccess(({ data }) => { - model.value.sshStatus = data.status - model.value.sshPort = data.port -}) useRequest(safe.pingStatus).onSuccess(({ data }) => { model.value.pingStatus = data }) @@ -28,12 +22,6 @@ const handleFirewallStatus = () => { }) } -const handleSsh = () => { - useRequest(safe.updateSsh(model.value.sshStatus, model.value.sshPort)).onSuccess(() => { - window.$message.success($gettext('Settings saved successfully')) - }) -} - const handlePingStatus = () => { useRequest(safe.updatePingStatus(model.value.pingStatus)).onSuccess(() => { window.$message.success($gettext('Settings saved successfully')) @@ -46,15 +34,9 @@ const handlePingStatus = () => { - - - - - -