You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何存储PuTTY连接的EC2 Ubuntu实例SSH会话日志并同步到CloudWatch或S3

PuTTY连接EC2 Ubuntu实例的SSH会话日志落地方案

方案1:使用pam_tty_audit + CloudWatch Agent(最轻量无侵入方案)

pam_tty_audit是Linux PAM模块自带的审计组件,无需额外安装复杂工具,可完整记录所有SSH tty会话的输入输出,包括PuTTY发起的连接场景,用户无感知,记录内容不会被手动清除history的操作覆盖。

  • 开启SSH会话审计:编辑/etc/pam.d/sshd文件,在末尾添加session required pam_tty_audit.so enable=*
  • 调整日志存储:默认审计日志会写入/var/log/auth.log,可修改rsyslog配置将SSH会话审计日志单独输出到/var/log/ssh-session.log,降低采集过滤成本
  • 配置流式上报:安装CloudWatch Agent,将对应日志路径加入采集规则,设置为流式上报即可实时同步到CloudWatch Logs;需要存储到S3的场景,可直接配置CloudWatch Logs定期导出任务,或配置Agent将轮转后的日志直接上传到S3。
    该方案默认记录所有用户的全量操作,包括sudo提权后的执行命令,无遗漏

方案2:使用auditd审计框架(规则自定义灵活度更高)

auditd是Linux官方原生的审计工具,可精准捕获所有进程执行调用,适合需要自定义审计维度的场景。

  • 安装依赖:执行apt update && apt install auditd audispd-plugins -y
  • 配置审计规则:新建/etc/audit/rules.d/ssh-audit.rules文件,添加规则-a exit,always -F arch=b64 -S execve -k ssh-session-cmd,可额外加-F euid>=1000过滤只审计普通用户操作,不需要过滤root操作可删除该参数
  • 生效规则:执行systemctl restart auditd && systemctl enable auditd
  • 日志上报:auditd日志默认存储在/var/log/audit/audit.log,通过CloudWatch Agent采集该路径即可,可直接用CloudWatch Logs的过滤规则提取命令内容、执行用户、时间戳等核心字段。

方案3:PuTTY走Session Manager隧道(复用SSM原生日志能力)

如果不想修改实例侧配置,可直接复用已有的Session Manager日志能力,将PuTTY的SSH连接通过SSM隧道代理:

  • 本地安装AWS CLI和Session Manager插件,配置对应实例的访问权限
  • PuTTY侧配置端口转发,通过本地SSM隧道代理连接实例的22端口

该场景下所有会话完全被SSM接管,直接使用你已配置的SSM会话日志存储规则即可自动落盘到CloudWatch Logs或S3,同时不需要给实例开放公网SSH端口,安全性更高,适合内部运维场景使用。

内容的提问来源于stack exchange,提问作者Akanksha Iyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:24:04