The tunnel removes inbound ports, but every hostname in ingress is still publicly resolvable and reachable. Access policies, not the tunnel, are what make a service private.
Setting PasswordAuthentication no is not sufficient. With UsePAM yes and KbdInteractiveAuthentication left at default, sshd will still complete a keyboard-interactive password login.
A container crash-looping under restart:always reports as "Up" between attempts, so uptime checks pass while the service is unavailable. A healthcheck plus restart:unless-stopped surfaces the failure instead of hiding it.