通过这种方式在ssh服务器pc上设置指定的sshd日志文件。
vim /etc/rsyslog.conf
local0.* /var/log/sshd.log
vim /etc/ssh/sshd_config
SyslogFacility local0
要创建日志文件:
touch /var/log/sshd.log
重新启动所有服务。
systemctl restart rsyslog
systemctl restart sshd
通过这种方式获取ssh客户端电脑上的所有ssh登录信息。
sudo vim /etc/bash.bashrc
HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S:whoami: "
export HISTTIMEFORMAT
PROMPT_COMMAND='history -a'
source /etc/bash.bashrc
现在获取所有 ssh 日志记录。
history |grep ssh
我的问题是如何在ssh客户端电脑中设置指定的ssh日志文件,而不是在ssh服务器电脑中设置sshd日志文件?
这是我在 ssh 客户端电脑上的尝试。
vim /etc/rsyslog.conf
local0.* /var/log/ssh.log
vim /etc/ssh/ssh_config
SyslogFacility local0
要创建日志文件:
touch /var/log/ssh.log
重新启动所有服务。
systemctl restart rsyslog
reboot
从ssh客户端电脑登录我的vps时出现错误:
/etc/ssh/ssh_config: line 56: Bad configuration option: syslogfacility
/etc/ssh/ssh_config: terminating, 1 bad configuration options
有没有办法在 ssh 客户端电脑中设置指定的 ssh 日志文件而不是将其记录在历史记录中?
History 命令可以记录我的 ssh 客户端电脑中执行的所有 ssh 操作,我希望将所有日志信息保存在单个指定文件中,例如 /var/log/ssh.log。
请不要这样告诉我。
history |grep ssh >> /var/log/ssh.log
答案1
在客户端执行以下操作:
script logfile.log
ssh into the machine
do whatever you need
exit from ssh
exit from script
它将把脚本会话中发生的所有事情记录到开头指定的文件中,直到您退出。
请注意操作整个屏幕的命令(vi、top 等),因为它们会在日志中生成垃圾。