Debian 上 SecureCRT 命令历史记录管理
一 客户端侧历史与快速调用
- 在 SecureCRT 中,终端输入的历史由本地客户端维护,常用快捷键为:
- 向上导航:Ctrl + Up
- 向下导航:Ctrl + Down
- 说明:上述快捷键用于在当前终端会话中浏览与调用先前输入的命令,便于快速复用。具体键位可能因版本或键盘映射略有差异。
二 客户端侧会话日志自动记录
- 建议开启会话日志,将你在终端看到的所有内容(包含命令与输出)持久化到文件,便于审计与回溯。
- 配置路径与要点(全局生效,便于新会话继承):
- 菜单:Options → Global Options → General → Default Session → Edit Default Settings → Log File
- 关键设置:
- 日志文件名:使用变量自动分目录与命名,例如
- Linux 示例:/var/log/securecrt_logs/%H/%Y-%M-%D_%h%m%s_%S.log
- Windows 示例:D:\SecureCRT_Log%H%Y-%M-%D_%h%m%s_%S_session.log
- 变量含义:%H 主机名、%S 会话名、%Y 年、%M 月、%D 日、%h 时、%m 分、%s 秒
- 选项建议:勾选Start log upon connect(连接即开始)、按需勾选Append to file(追加而非覆盖)、需要按天分文件时在文件名中包含**%D并启用Start new log at midnight**
- 时间标记:在Upon connect与On each line写入时间格式,例如**[%Y-%M-%D %h:%m:%s]**,便于定位每条命令的时间
- 应用范围:保存后将配置应用到全部会话,后续新建或已存会话都会自动按该规则记录日志。
三 服务器端命令审计与历史留存
- 若需在 Debian 服务器端留存可审计的命令历史(与客户端无关),可通过 rsyslog 将 shell 命令写入系统日志:
- 在全局环境配置中增加时间与历史记录逻辑(示例写入 local4.info):
- 在 /etc/profile 末尾追加:
- export HISTTIMEFORMAT=“,%Y-%m-%d %H:%M:%S,
who am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g',”
- export PROMPT_COMMAND=’
if [ -z “$OLD_PWD” ]; then
export OLD_PWD=$PWD;
fi;
if [ ! -z “$LAST_CMD” ] && [ “$(history 1)” != “$LAST_CMD” ]; then
logger -t shell_cmd -p local4.info “{HOSTIP=$HOSTIP USER=
whoami,PWD=$OLD_PWD,HISTORY=$(history 1)}”;
fi;
export LAST_CMD=“$(history 1)”;
export OLD_PWD=$PWD;’
- export HOSTIP=“$(/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk ‘{print $2}’ | tr -d “addr:” | sort | head -n 1)”
- 配置 rsyslog 输出到远程日志服务器(示例 UDP 514 端口):
- 在 /etc/rsyslog.conf 添加:local4.info @133.xxx.xx.xx:514
- 使配置生效:执行
source /etc/profile,并重启 rsyslog(如 systemctl restart rsyslog)
- 回退:删除新增内容并恢复备份,再次
source /etc/profile 与重启 rsyslog
- 说明:该方案将命令历史以结构化方式写入系统日志,便于集中审计与检索。
四 日志分析与检索建议
- 客户端会话日志:按主机/会话/日期分目录,文件名含时间戳,便于快速定位某次会话;在日志中搜索关键命令或错误关键字即可复盘操作过程。
- 服务器端审计日志:通过 rsyslog 收集的日志可用常规工具(如 grep、awk、sed、journalctl 等)检索,例如按用户、主机、时间窗过滤,实现细粒度审计。