通过find命令查找authorized_keys文件,可以初步检查默认路径下配置的SSH公钥授权。
原理说明
机器A某用户如果要通过公钥登录机器B,通常先生成密钥对,再将公钥放到机器B对应用户的 .ssh/authorized_keys 文件中。私钥可能仍有口令,所以公钥登录也不等于私钥无需解锁。
不过,仅凭 authorized_keys 文件是否存在,不能判断所有“免密登录”情况:sshd 可以配置其他 AuthorizedKeysFile 路径、AuthorizedKeysCommand 或受信 CA;用户家目录也不一定在 /home。文件存在时,还要检查其内容、权限以及服务端是否启用相应认证。
详细命令
下面只对常见默认路径做初筛,命令需要有读取对应目录的权限。
root用户
1 | find /root -type f -name authorized_keys |
普通用户
1 | find /home -type f -name authorized_keys |
完整检查应结合用户的实际家目录和 sshd 的有效配置,包括 Match 条件。可以参考 sshd_config 官方说明。
如果发现不再需要的公钥,先核对授权人并备份,再删除对应的那一条记录。删除整个文件会撤销其中所有密钥;操作前保留当前会话,并确认另一个登录方式可用,避免把自己锁在机器外面。