没有authorized_keys文件的公钥认证

没有authorized_keys文件的公钥认证

我在 Linux 服务器上有很多 ssh 公钥登录,例如:

Jul 25 11:41:01 host sshd[24594]: Accepted publickey for root from xxx.xxx.xx.xx port 33374 ssh2

authorized_keys这对我来说很奇怪,因为目录中没有文件/root/.sshAuthorizedKeysFile中的选项的/etc/ssh/sshd_config默认值为.ssh/authorized_keys

我想知道如何使用公钥身份验证登录服务器?

答案1

我已经弄清楚发生了什么事。消息通过 UDP 从远程主机到达服务器。我一开始没有注意到主机字段发生变化,我的错误。

顺便说一句,实际上在那里可以使用公钥身份验证登录,不authorized_keys涉及文件。 RedHat(及其变体)有一个受支持的 OpenSSH 补丁,其中添加了AuthorizedKeysCommandAuthorizedKeysCommandRunAs选项。该补丁已被合并到上游OpenSSH 6.2。引用自手册页:

授权密钥命令

指定用于查找用户公钥的程序。该程序将使用其第一个参数(被授权的用户名)进行调用,并应在标准输出 AuthorizedKeys 行上生成(请参阅 sshd(8) 中的 AUTHORIZED_KEYS)。默认情况下(或设置为空字符串时)不会运行 AuthorizedKeysCommand。如果 AuthorizedKeysCommand 未成功授权用户,则授权将传递给 AuthorizedKeysFile。请注意,此选项仅在 PubkeyAuthentication 打开时有效。

授权键命令运行方式

指定在其帐户下运行 AuthorizedKeysCommand 的用户。空字符串(默认值)表示使用被授权的用户。

相关内容