我对sshd进程不熟悉;我正在尝试启用无需密码的远程 ssh 登录,并且我已将我的公钥插入到服务器端的 ~/.ssh/authorized_keys 中,并且它适用于其中一个远程系统,而不是另一个。
我注意到非工作远程系统上的 /etc/ssh/sshd_config 中有以下条目,
#AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile /var/ssh/%u/ak
由于我已将公钥插入 .ssh/authorized_keys 中,因此我尝试将上面的内容更改为
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile /var/ssh/%u/ak
这似乎允许我在没有密码的情况下远程 ssh,但是,我注意到该文件每隔几个小时就会重置一次,我必须再次输入 SSH 密码。
知道这里的配置文件发生了什么吗?
谢谢!
答案1
你可以使用工具实现
fanotify()
内核 API。例如fanotify-cmd工作完美。无需编辑任何系统文件或解析日志。./fm -a /etc/passwd checking for events FAN_ACCESS mask: FAN_ACCESS, fd: 4, pid: 203188, file: /etc/passwd, command: bash mask: FAN_ACCESS, fd: 4, pid: 203190, file: /etc/passwd, command: mask: FAN_ACCESS, fd: 4, pid: 203321, file: /etc/passwd, command: ls --color=auto -l /etc/passwd
Ubuntu 和 Fedora 都包含
fatrace
一个非常好的维护良好的实用程序。sudo fatrace --timestamp --filter=WD
或者你可以使用
auditd
.由于它是一个系统守护进程,因此您需要编辑一个 .auditd 系统配置文件/etc
。网上有很多如何使用它们的手册,例如堆栈交换本身。inotifywait
不幸的是,它不适用于此用例,因为它仅显示正在访问或修改的文件,而没有显示执行该操作的进程。