【问题标题】:Is there a way to catch the openssh key based authentication failure?有没有办法捕获基于 openssh 密钥的身份验证失败?
【发布时间】:2017-05-05 16:23:38
【问题描述】:

有没有办法捕获基于 openssh 密钥的身份验证失败? 我正在寻找一个选项,当某个用户基于 ssh 密钥的身份验证失败时,就会引发一些自定义的“错误处理,如警报”。

我知道基于密钥的身份验证是由 openssh 完成的,我想知道是否有任何选项,我可以在其中插入我的错误处理/报告代码,当身份验证失败时将调用该代码。

关于如何做到这一点的任何指示?有什么方法可以让这个失败被一些应用程序捕获?

【问题讨论】:

  • 您需要提供更多上下文。您使用的是什么语言和库? Post your current code。您甚至是在谈论 SSH 客户端,而不是 SSH 服务器(在这种情况下,这与编程有什么关系?)?
  • 上下文是我需要在 SSH 访问失败时对应该仅使用基于密钥的身份验证的用户进行一些专有错误处理。现在,我正在寻找一种设计理念,如何在身份验证失败时插入我的专有错误处理/报告。
  • 你甚至都没有说你是在看服务器还是客户端。您需要提供更多背景信息。
  • sshd 配置为仅接受基于密钥的身份验证。然后,根据定义,通过您的正常系统日志通道记录的来自sshd 的任何身份验证失败都将是“基于密钥的身份验证失败”
  • 要求是在认证失败时做一些专有的错误报告。我有一段代码,需要在看到密钥基础认证失败时调用。

标签: linux ssh openssh pam


【解决方案1】:

没有。 OpenSSH 不支持任何插入错误处理的方法。但是失败的登录尝试会记录在错误日志或审计中(在 RHEL/Fedora 上),您可以在其中简单地区分用户、身份验证类型并做出相应的反应。

这与fail2ban 的做法非常相似(它读取错误日志)。但我不知道你想达到什么目的。公钥身份验证失败很常见(大多数客户端都在向他们尝试访问的所有服务器发送公钥测试,因此您可以看到很多此类事件)。

【讨论】:

  • 谢谢,是的,fail2bin 就是这样工作的。我们有一个奇怪的内部需求,需要为某些特定用户提供这样的解决方案。
猜你喜欢
  • 2020-09-04
  • 2015-01-16
  • 2021-10-27
  • 2013-02-15
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2018-02-24
相关资源
最近更新 更多