fix(security): 移除硬编码凭据与内网信息,改为环境变量注入
这个提交包含在:
@@ -1,13 +1,21 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
import paramiko
|
||||
|
||||
# 配置连接参数
|
||||
hostname = "***REMOVED***" # 远程服务器的 IP 地址
|
||||
port = 22 # SSH 端口,通常是 22
|
||||
username = "root" # SSH 用户名
|
||||
password = "***REMOVED***" # SSH 密码,或使用密钥认证
|
||||
# 连接参数从环境变量读取,避免在代码中硬编码任何真实凭据
|
||||
# 可参考 .env.example 配置;生产环境建议改用 SSH 密钥认证
|
||||
hostname = os.environ.get("SSH_HOST", "")
|
||||
port = int(os.environ.get("SSH_PORT", "22"))
|
||||
username = os.environ.get("SSH_USER", "")
|
||||
password = os.environ.get("SSH_PASSWORD", "")
|
||||
|
||||
|
||||
# SSH 连接并执行关机命令
|
||||
def shutdown_server():
|
||||
if not all([hostname, username, password]):
|
||||
print("请先通过环境变量配置 SSH_HOST / SSH_USER / SSH_PASSWORD(可参考 .env.example)")
|
||||
sys.exit(1)
|
||||
try:
|
||||
# 创建 SSH 客户端对象
|
||||
client = paramiko.SSHClient()
|
||||
@@ -40,4 +48,4 @@ def shutdown_server():
|
||||
print(f"An error occurred: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
shutdown_server()
|
||||
shutdown_server()
|
||||
|
||||
在新工单中引用
屏蔽一个用户