[GH-ISSUE #384] Pangolin SSH Automated Provisioning error: "useradd" not found in $PATH #8715

Closed
opened 2026-07-14 20:57:45 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @rosalinaowo on GitHub (Jun 15, 2026).
Original GitHub issue: https://github.com/fosrl/newt/issues/384

Describe the Bug

Newt fails to create a new user when Automated Provisioning is enabled in a Pangolin SSH resource.

Result on the browser:
Image

On the logs I can see this:

newt  | INFO: 2026/06/15 19:29:29 connection: niceId="" username="p-<username>" metadata.sudoMode="full" metadata.sudoCommands=[] metadata.homedir=true metadata.groups=[]
newt  | INFO: 2026/06/15 19:29:29 auth-daemon: wrote CA cert to /etc/ssh/ca.pem
newt  | WARN: 2026/06/15 19:29:29 auth-daemon: ensure user: useradd p-<username>: exec: "useradd": executable file not found in $PATH (output: )
newt  | INFO: 2026/06/15 19:29:29 nativessh: updated credentials for user p-<username> (niceId=supportive-anilius)

This could be due to Alpine having adduser instead of useradd

Environment

  • OS Type & Version: Debian GNU/Linux 12 (bookworm) x86_64
  • Pangolin Version: 1.19.2
  • Edition (Community or Enterprise): Enteprise
  • Gerbil Version: 1.4.2
  • Traefik Version: 3.7
  • Newt Version: 1.13.0

To Reproduce

My docker compose file:

services:
  newt:
    image: fosrl/newt
    user: root
    container_name: newt
    restart: unless-stopped
    environment:
      PANGOLIN_ENDPOINT: "${PANGOLIN_ENDPOINT:?}"
      NEWT_ID: "${NEWT_ID:?}"
      NEWT_SECRET: "${NEWT_SECRET:?}"
    network_mode: host
  1. Add a public SSH resource
  2. Give it a name and a subdomain
  3. Set Pangolin SSH mode and choose Automated Provisioning
  4. Create the resource
  5. Go to the web page of the new resource
  6. See error above

Expected Behavior

Newt finds useradd in the PATH and executes the command correctly, or uses adduser or an equivalent command to successfully create the new user

Originally created by @rosalinaowo on GitHub (Jun 15, 2026). Original GitHub issue: https://github.com/fosrl/newt/issues/384 ### Describe the Bug Newt fails to create a new user when Automated Provisioning is enabled in a Pangolin SSH resource. Result on the browser: <img width="552" height="306" alt="Image" src="https://github.com/user-attachments/assets/2fea7b3c-e924-4ad7-bf7f-3de4390dd393" /> On the logs I can see this: ``` newt | INFO: 2026/06/15 19:29:29 connection: niceId="" username="p-<username>" metadata.sudoMode="full" metadata.sudoCommands=[] metadata.homedir=true metadata.groups=[] newt | INFO: 2026/06/15 19:29:29 auth-daemon: wrote CA cert to /etc/ssh/ca.pem newt | WARN: 2026/06/15 19:29:29 auth-daemon: ensure user: useradd p-<username>: exec: "useradd": executable file not found in $PATH (output: ) newt | INFO: 2026/06/15 19:29:29 nativessh: updated credentials for user p-<username> (niceId=supportive-anilius) ``` This could be due to Alpine having `adduser` instead of `useradd` ### Environment - OS Type & Version: Debian GNU/Linux 12 (bookworm) x86_64 - Pangolin Version: 1.19.2 - Edition (Community or Enterprise): Enteprise - Gerbil Version: 1.4.2 - Traefik Version: 3.7 - Newt Version: 1.13.0 ### To Reproduce My docker compose file: ``` services: newt: image: fosrl/newt user: root container_name: newt restart: unless-stopped environment: PANGOLIN_ENDPOINT: "${PANGOLIN_ENDPOINT:?}" NEWT_ID: "${NEWT_ID:?}" NEWT_SECRET: "${NEWT_SECRET:?}" network_mode: host ``` 1. Add a public SSH resource 2. Give it a name and a subdomain 3. Set `Pangolin SSH` mode and choose `Automated Provisioning` 4. Create the resource 5. Go to the web page of the new resource 6. See error above ### Expected Behavior Newt finds `useradd` in the PATH and executes the command correctly, or uses `adduser` or an equivalent command to successfully create the new user
Author
Owner

@AstralDestiny commented on GitHub (Jun 15, 2026):

You can't use the automated provisoning within a container newt even with host networking as newt itself needs to run useradd which doesn't exist within the container even if it did it wouldn't function as it would be targetting it's own environment not the host.

<!-- gh-comment-id:4712618022 --> @AstralDestiny commented on GitHub (Jun 15, 2026): You can't use the automated provisoning within a container newt even with host networking as newt itself needs to run useradd which doesn't exist within the container even if it did it wouldn't function as it would be targetting it's own environment not the host.
Author
Owner

@AstralDestiny commented on GitHub (Jun 15, 2026):

Only the binary supports the automated provisioning.

<!-- gh-comment-id:4712619217 --> @AstralDestiny commented on GitHub (Jun 15, 2026): Only the binary supports the automated provisioning.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/newt#8715