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

如何查看通过SSH访问的第三方自动服务在服务器上执行的命令与脚本历史

如何查看通过SSH访问的第三方自动服务在服务器上执行的命令与脚本历史

嘿,这个需求太合理了——第三方服务在自己服务器上搞操作,总得摸清楚它到底干了啥对吧?给你几个实用的方法,按需选用:

  • 检查Shell历史文件:如果第三方服务是通过某个系统用户(比如root或者专门的服务账号)登录的,你可以查看该用户的Shell历史记录文件。比如用bash的话,历史文件是~/.bash_history,执行cat /home/[用户名]/.bash_history或者cat /root/.bash_history(如果是root用户)就能看到历史命令。不过要注意,如果服务用的是非交互式Shell,或者刻意清空了历史,这个方法可能就失效了。

  • 启用系统审计工具(auditd):这是更可靠的方式,能记录几乎所有系统层面的操作,包括第三方服务执行的命令。

    1. 先安装auditd:Debian/Ubuntu用sudo apt install auditd,CentOS/RHEL用sudo yum install auditd。
    2. 启动并设置开机自启:sudo systemctl start auditd,接着sudo systemctl enable auditd。
    3. 添加审计规则,比如监控某个特定用户的所有命令执行:先通过id [用户名]拿到用户ID,然后执行sudo auditctl -a exit,always -F auid=[用户ID] -F execve。
    4. 查看审计日志:用sudo ausearch -x bash(或者对应服务用的Shell),或者sudo aureport -x生成命令执行的汇总报告。
  • 监控SSH会话的完整操作记录:如果能提前配置,你可以让SSH服务自动记录每个会话的所有输入输出,连命令带结果都能抓到。

    1. 修改SSH配置文件/etc/ssh/sshd_config,添加或修改一行:ForceCommand /usr/bin/script -q -c "$SHELL" /var/log/ssh-sessions/$(date +%Y%m%d-%H%M%S)-$USER.log。
    2. 创建日志存储目录并设置权限:sudo mkdir -p /var/log/ssh-sessions && sudo chmod 700 /var/log/ssh-sessions。
    3. 重启SSH服务生效:sudo systemctl restart sshd。之后所有SSH登录的会话都会被记录到指定目录的日志文件里,第三方服务的操作也跑不掉。
  • 查看系统安全日志辅助定位:SSH的登录事件会被系统日志记录下来,比如Debian/Ubuntu的/var/log/auth.log,CentOS/RHEL的/var/log/secure。你可以用grep "ssh" /var/log/auth.log(对应自己的系统日志路径)查看第三方服务的登录时间、来源IP等信息,再结合前面的方法来定位对应的操作记录。

备注:内容来源于stack exchange,提问作者Azeem Haider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 13:53:19