你们好,我是IT按键手,专业给你们分享计算机、网络、安全等专业知识!
接出来我给你们分享一个怎样记录ssh命令操作的小窍门。ssh命令是OpenSSH开源项目提供的使用SSH合同的远程管理工具,也Linux系统中最常用的命令之一,我们通常用它来远程管理服务器或网路设备。
跟PuTTY、SecureCRT等管理工具不同linux查看ssh版本信息,ssh命令天生不提供记录操作历史记录功能,所以一旦操作失误,我们将很难对操作历史进行回溯。不过,好在我们还有tee命令可用:
里面的事例中,我们通过管路把ssh命令的输出给tee命令,并由tee命令保存到/var/log/sshsessionlog.log日志中。通过tail命令我们可以看见日志文件所见即所得地保存了所有操作记录(可以对比一下LastLogin时间戳):
这么问题来了,若果想要每位ssh会话都记录一个文件呢?或则不想每次都加tee命令呢?很简单,我们可以在~/.bashrc文件中添加以下函数来实现:
root@Hacker:~# tail -14 ~/.bashrc
function ssh () {
LOGDIR="/var/log/ssh"
[[ ! -d $LOGDIR ]] && mkdir $LOGDIR
HOST=`echo "$@" | grep -oE "b([0-9]{1,3}.){3}[0-9]{1,3}b"`
if [[ "a$HOST" == "a" ]] ; then
HOST="NOHOST"
fi
DATESTR=`date +"%Y-%m-%d_%H"`
`which ssh` "$@" | tee -a "${LOGDIR}/${HOST}_${DATESTR}.log"
}
root@Hacker:~#
函数功能很简单,只是简单地覆盖了ssh命令,并手动使用tee命令把ssh会话操作记录保存到/var/log/ssh目录:
这脚本是我随手写的linux多线程,没有经过严格测试,有能力的老铁可以自己更改。
所以,你学会了吗?加个关注吧linux查看ssh版本信息linux培训,感谢:)
#互联网安全#
#Linux#
#小白入行网路安全#