AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 880051
Accepted
user35042
user35042
Asked: 2017-10-25 07:20:15 +0800 CST2017-10-25 07:20:15 +0800 CST 2017-10-25 07:20:15 +0800 CST

如何列出所有 OpenSSH 支持的身份验证方法?

  • 772

我正在使用 OpenSSH 6.7 版运行 Debian Linux jessie。我AuthenticationMethods在/etc/ssh/sshd_config. 我知道这些字符串由以下人员识别AuthenticationMethods:

keyboard-interactive
gssapi-with-mic
password
publickey

我在哪里可以找到可以与 一起使用的所有有效字符串的列表AuthenticationMethods?(这样的列表不在 . 的手册页中sshd_config。)

ssh
  • 2 2 个回答
  • 9213 Views

2 个回答

  • Voted
  1. John Greene
    2019-12-29T20:05:46+08:002019-12-29T20:05:46+08:00

    没有办法……通过网络……提前列出所有有效的 OpenSSH 身份验证方法……永远:你只能挑战第一个,然后是下一个……

    这是一项安全功能。你要知道?/etc/ssh/sshd_config直接在该服务器上查看。哦,你不能?这就是设计的安全性。

    因此,由于我已经对 OpenSSH 进行了一段时间的代码审查,因此我将进一步扩展该列表,而不是官方 OpenSSL 文档所涵盖的内容。

    可用的身份验证方法有:

    • " gssapi-with-mic",
    • " hostbased",
    • " keyboard-interactive",
    • " "(启用none时用于访问无密码帐户),PermitEmptyPassword
    • “ password”和
    • “ publickey”。

    AuthenticationMethods指定用户必须成功完成才能被授予访问权限的身份验证方法。此选项后必须跟一个或多个逗号分隔的身份验证方法名称列表,或单个字符串any以指示接受任何单个身份验证方法的默认行为。如果覆盖默认值,则成功的身份验证需要完成这些列表中至少一个中的每个方法。

    公钥认证

    例如,

    AuthenticationMethods publickey,password publickey,keyboard-interactive
    

    将要求用户完成公钥认证,然后是密码或键盘交互认证。在每个阶段仅提供一个或多个列表中的下一个方法,因此对于此示例,不可能在公钥之前尝试password或验证。keyboard-interactive

    键盘交互认证

    对于键盘交互式身份验证,还可以通过在设备标识符后附加一个冒号bsdauth或pam根据服务器配置来限制对特定设备的身份验证。例如,

    AuthenticationMethods keyboard-interactive:bsdauth
    

    会将键盘交互式身份验证限制在bsdauth设备上。

    多重公钥认证

    如果 publickey 方法被列出了不止一次,则sshd(8)验证已经成功使用的密钥没有被重复用于后续的身份验证。

    例如,

    AuthenticationMethods publickey,publickey
    

    需要使用两个不同的公钥成功进行身份验证。

    笔记

    分隔一对 auth 选项的逗号 ( ,) 分隔符符号在其任何空格分隔符之前首先一起尝试(AND 逻辑)。

    分隔一个或多个身份验证选项(其选项可以用逗号连接)的空格 ( ) 分隔符将单独尝试(或逻辑)。

    注意:冒号 ( :) 分隔符用于将其随附的身份验证方法限制为特定身份验证设备路径机制,例如pam、bsdauth和skey。对于键盘交互式身份验证,还可以通过附加冒号后跟设备标识符bsdauth、pam或来限制对特定设备的身份验证skey,具体取决于服务器配置。例如,keyboard-interactive:bsdauth将键盘交互式身份验证限制为bsdauth设备。

    请注意,none列出的每个身份验证选项(除了 )AuthenticationMethods还应在配置中显式启用其相应的配置设置。例如,如果pubkey在设置中使用了选项,AuthenticationMethods那么伴随的配置行PubkeyAuthentication on也必须在其配置文件中。

    OpenSSH 代码审查者的详细信息

    • 通道类型:preauth(预通道)
    • CLI 选项:-oAuthenticationMethods=XXXX"
    • 进程上下文:主要
    • SSH 服务:ssh-userauth (SSH2_MSG_USERAUTH_REQUEST)
    • options.auth_methods[]/auth2_setup_methods_lists()/input_userauth_request()
    • AuthenticationMethods 默认为“ any”。
    • 6
  2. Best Answer
    LHWizard
    2017-10-25T11:25:16+08:002017-10-25T11:25:16+08:00

    这没有非常清楚地记录(或根本没有)。但这是我能找到的。在 OpenSSH 6.2 中,只有 4 种方法

    只有四种允许的方法:publickey、password、hostbased 和keyboard-interactive。

    其他人也觉得需要更多的文档。请参阅附件 3045,其中说明了 OpenSSH 7.5:

    可用的身份验证方法有:gssapi-with-mic、hostbased、keyboard-interactive、none(在启用 PermitEmptyPassword 时用于访问无密码帐户)、password 和 publickey。

    希望有帮助。

    • 3

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve