Why This Matters
Tailscale SSH has two relevant SSH ACL actions:
accept: allow the already-authenticated tailnet principal without a fresh browser reauth.check: require a fresh identity-provider check for the configured period. This is the behavior that can block non-interactive agents.
For unattended deploys, use accept for the specific
source/destination/users needed by the RG path. If check is
still in effect and cannot be changed, the fallback is
tailscale set --ssh=false on the RG, which makes
ssh root@100.119.202.114 reach the RG’s normal SSH daemon
through Tailscale and authenticate with regular SSH keys.
Minimal SSH ACL shape:
{
"ssh": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["autogroup:self"],
"users": ["root", "autogroup:nonroot"]
}
]
}
Narrow src, dst, and users
further when the RG and deploy hosts have stable users/tags.