远程访问安全,很多人第一反应就是设个强密码完事。但现实远没有那么乐观——暴力破解、会话劫持、磁盘泄露、越权读取,这些风险在明文密码和未加密存储面前,几乎就是敞开的大门。对于正在搭建或维护Qoder环境的技术团队来说,如果能将SSH密钥验证与数据加密并行落地,安全水平会直接上一个台阶。下面这条加固路径,从密钥生成到传输加密再到静态数据保护,每个环节都踩住了当前主流的安全实践。

一、生成并部署Ed25519高强度SSH密钥对
选用Ed25519算法而非传统的RSA-2048,密钥体积更小、签名速度更快,而且对初级的量子计算攻击也有一定抗性——私钥不可逆推,目前没有已知的实用攻击路径。
1、在本地终端执行:ssh-keygen -t ed25519 -C "qoder-admin@company.com"
2、保存路径直接回车,默认位置为 ~/.ssh/id_ed25519
3、口令要足够长——至少12位,包含大小写字母、数字和符号,输入并二次确认
4、确认私钥权限为600:ls -l ~/.ssh/id_ed25519
二、将公钥注入Qoder服务器并锁定文件权限
公钥必须精确写入目标用户的~/.ssh/authorized_keys。这个文件如果格式错、有多余空行或权限太宽松,SSH守护进程会直接拒绝认证,连接也就断了。
1、自动注入并设权:ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@qoder-server-ip
2、如果ssh-copy-id不可用,就用手动方式:先复制公钥——cat ~/.ssh/id_ed25519.pub,整行输出(以ssh-ed25519开头)
3、登录服务器,创建.ssh目录并设权:mkdir -p ~/.ssh && chmod 700 ~/.ssh
4、将公钥追加至授权文件:echo "ssh-ed25519 AAAA...user@company.com" >> ~/.ssh/authorized_keys
5、立即收紧权限:chmod 600 ~/.ssh/authorized_keys
三、强制启用密钥认证并禁用密码登录
光生成密钥不够——如果密码登录通道还开着,那就等于留着后门。OpenSSH必须通过sshd_config显式关闭PasswordAuthentication,才能彻底阻断暴力破解路径。
1、以root权限编辑配置:sudo nano /etc/ssh/sshd_config
2、确认这两行取消注释并设置为:PubkeyAuthentication yes
3、另一行设置为:PasswordAuthentication no
4、检查PermitRootLogin是否设为no或prohibit-password
5、重启服务:sudo systemctl restart sshd
四、启用TLS 1.3端到端传输加密
Qoder与外部系统(GitHub、CRM、Slack等等)之间的通信,必须全程走在加密隧道里,否则中间人窃听、篡改、会话劫持都可能发生。TLS 1.3的优势在于前向保密和零往返时间(0-RTT)握手,既安全又高效。
1、登录Qoder管理控制台,进入「连接器设置」→「网络策略」
2、选择目标Connector(比如GitHub Connector),点击「编辑」
3、在「安全选项」中勾选强制启用TLS 1.3且禁用降级协商,保存
4、执行测试连接,确认日志中间出现"TLS handshake completed with version 1.3"
五、配置AES-256-GCM静态数据加密
Qoder会把任务上下文、记忆片段、技能参数等持久化到内部向量库和结构化存储。如果没启用静态加密,磁盘快照或备份介质泄露,原始敏感内容就直接暴露了。
1、在Qoder CLI中启用:qoder config set encryption.at-rest.enabled true
2、指定密钥由硬件安全模块托管:qoder config set encryption.at-rest.key-source hsm
3、重启服务:qoder service restart
4、验证加密状态:qoder audit encryption status,确认at_rest_encryption_active字段为true
