Skip to content

🐛 Bug: Dory does not support external hardware OTP input for SSH authentication #178

@dory-finn

Description

@dory-finn

Description

When connecting to an SSH server that requires OTP (One-Time Password) from an external hardware device (e.g., hardware token, MFA device), Dory currently fails to handle the interactive OTP input step.

As a result, SSH authentication fails even though credentials (password/key) are correct.

Error Messages

Observed errors include:

  • All configured authentication methods failed
  • SSH connection requires password
  • No prompt for OTP / MFA code is shown

Expected Behavior

Dory should:

  • Detect OTP/MFA prompt during SSH authentication
  • Provide an input UI for users to enter OTP codes (e.g., from hardware token)
  • Support interactive keyboard-based authentication (keyboard-interactive)

Actual Behavior

  • SSH connection fails without allowing OTP input
  • No UI or fallback mechanism for MFA/OTP
  • Appears to only support password / key-based auth

Steps to Reproduce

  1. Configure an SSH server with MFA (e.g., Google Authenticator / hardware token)
  2. Attempt to connect via Dory
  3. Observe that authentication fails without OTP prompt

Environment

  • Dory version: (please fill)
  • OS: (macOS / Windows / Linux)
  • SSH server: (e.g., OpenSSH with MFA enabled)

Possible Root Cause

  • Missing support for keyboard-interactive authentication in SSH client
  • No handling of multi-step auth challenges

Suggested Fix

  • Add support for keyboard-interactive auth flow
  • Implement OTP prompt UI
  • Support multiple challenge-response steps during SSH handshake

Additional Context

This issue blocks usage in environments with:

  • Mandatory MFA
  • Hardware security tokens
  • Enterprise SSH setups

Would love to help test if a fix or experimental version is available 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions