Skip to content

Shell fails to start when Tailscale SSH requires additional authentication check #513

Closed
@bannert1337

Description

@bannert1337

Describe the bug
When attempting to establish an SSH connection to a host managed by Tailscale, and Tailscale SSH requires an additional authentication step (directing the user to visit a login.tailscale.com URL), XPipe fails to start the shell. It appears XPipe times out waiting for a standard shell prompt, as it doesn't recognize or handle the intermediate authentication message from Tailscale.

Steps to Reproduce

  1. Configure a remote host to use Tailscale SSH.
  2. Ensure the Tailscale configuration or ACLs require the interactive web-based check for SSH sessions (To authenticate, visit: https://login.tailscale.com/...).
  3. Add this host as an SSH connection in XPipe.
  4. Attempt to open a terminal/shell session to this host via XPipe.

Expected behavior
Ideally, XPipe should detect this specific output from Tailscale SSH. It could:

  • Display the authentication message and URL prominently to the user (e.g., in the connection log window or a modal dialog).
  • Potentially pause the timeout countdown while waiting for the user to authenticate via the provided URL.
  • Allow the connection to proceed once authentication is completed externally.

Actual behavior
XPipe doesn't seem to process the Tailscale authentication message. It waits for a standard shell response, which never comes because the SSH session is blocked pending web authentication. After a timeout period, XPipe throws an error indicating the shell did not start up in time, including the Tailscale message within the exception details.

Error Log

06:15:57:716 - error: Shell did not start up in time as we did not receive any response.

# Tailscale SSH requires an additional check.
# To authenticate, visit: https://login.tailscale.com/a/la584e6c010ed1
io.xpipe.core.process.ProcessOutputException: Shell did not start up in time as we did not receive any response.

# Tailscale SSH requires an additional check.
# To authenticate, visit: https://login.tailscale.com/a/la584e6c010ed1
	at io.xpipe.core.process.ProcessOutputException.withParagraph(ProcessOutputException.java:23)
	at io.xpipe.ext.proc.util.e.cf(SourceFile:1465)
	at io.xpipe.ext.proc.n.p(SourceFile:1689)
	at io.xpipe.ext.proc.ssh.o.p(SourceFile:113)
	at io.xpipe.ext.proc.n.D(SourceFile:587)
	at io.xpipe.ext.proc.n.start(SourceFile:276)
	at io.xpipe.app.ext.ShellSession.start(ShellSession.java:30)
	at io.xpipe.core.store.SingletonSessionStore.startSessionIfNeeded(SingletonSessionStore.java:54)
	at io.xpipe.app.ext.ShellStore.getOrStartSession(ShellStore.java:27)
	at io.xpipe.ext.base.action.RunScriptActionMenu$TerminalRunActionProvider$Action.execute(RunScriptActionMenu.java:36)
	at io.xpipe.app.comp.store.StoreEntryWrapper.runAction(StoreEntryWrapper.java:345)
	at io.xpipe.app.comp.store.StoreEntryComp.lambda$buildMenuItemForAction$46(StoreEntryComp.java:508)
	at io.xpipe.app.util.ThreadHelper.lambda$runFailableAsync$1(ThreadHelper.java:45)
	at io.xpipe.app.util.ThreadHelper.lambda$wrap$0(ThreadHelper.java:22)
	at java.lang.VirtualThread.run(VirtualThread.java:329)

Environment

  • XPipe Version: 15.8/2025-03-23-08-10
  • Operating System: CachyOS (Arch Linux)
  • Tailscale Version (Client): 1.80.3
  • Remote Host OS: Arch Linux
  • Remote Tailscale Version (Server): 1.80.0

Additional context
This issue prevents users from leveraging XPipe's shell capabilities with Tailscale SSH setups that enforce this additional authentication layer, which is becoming increasingly common for enhanced security.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions