mirror of
https://github.com/tailscale/tailscale.git
synced 2026-11-03 08:04:40 -05:00
A policy rejection names the requested sshUser: that name is the client's own request and reflects only tailnet policy (the client's own ACL view), never a local-host fact, so naming it leaks nothing. What a client-visible rejection must never depend on is server-side local-user information: local-user lookup failures send one fixed message for every failure cause, with the underlying error logged server-side only, so the client cannot tell "no such local user" from any other lookup failure and no banner is a username-existence oracle. Pin both properties in TestSSHAuthFlow: the user-mismatch cases, including a rule whose "=" mapping forces a local lookup of a user that does not exist, all name the requested user identically, and an accept rule whose mapped local user fails lookup gets the fixed lookup-failure banner. Updates tailscale/corp#50380 Signed-off-by: James Tucker <james@tailscale.com>