Site Access & Isolation

Site-Level SSH, FTP and Access Control.

Give a developer or a customer access to one website, not the whole server. Nodekeeper keeps four things apart: site access and host access, panel accounts and site runtime users, file permissions and processes, and who may do something versus who owns it.

All plans, including Free Site isolation and site SSH / FTP are included in every plan. Groups and delegated roles start at Pro.

Three roles, three access paths

Administrator

  • Manages the host: host SSH settings, keys and 2FA, firewall, runtimes.
  • Controls who may open site SSH. By default, members may open temporary grants for their own sites, and only administrators may make them permanent.
  • Fatal operations ask for a fresh 2FA code (step-up).

Site maintainer

  • Receives a time-limited SSH / SFTP key for one site.
  • Lands inside that site's sandbox. Other sites and the host system are not visible.
  • Access ends when the grant expires or is revoked.

Customer / member

  • Logs in to the panel with a member account and sees only the sites they own.
  • Works on files through the browser file manager, FTP or a temporary site SSH grant. There is no shell account on the host.
  • Requests for another member's resources are refused.

Per-site virtual SSH vs. host SSH

Site SSH is served by a separate Nodekeeper SSH service, not by the host's own sshd. A site SSH account is a virtual access mechanism that Nodekeeper manages. It is not a virtual machine, a container or a separate kernel.

  • Key-only login. Nodekeeper generates the key, and the key's password is shown only once.
  • A grant lasts 2, 4, 8, 12 or 24 hours. Each site has one grant at a time.
  • The session and SFTP are confined to that site's directory.
  • Revoking a grant closes open sessions within seconds. Our test measured under 7 seconds.
  • Permanent site SSH is a separate permission. By default only the administrator group has it. Operators can grant it to a group they create for selected customers (user groups start at Pro).

Host SSH, 2FA, keys All plans, including Free

Host access stays with the administrator. In the panel you configure the host's SSH service, authorised keys and two-factor authentication. These settings are separate from site grants: giving someone site SSH never adds them to the host's SSH configuration.

Per-site virtual FTP

Each site's FTP service runs as that site's user, so it reaches only that site's files. The password is shown once, when it is created or reset.

Limits and prerequisites
  • Known issue: after you regenerate an FTP password, the running FTP instance keeps accepting the old one until you restart it. Restart the instance after each reset.

Panel accounts, site users and processes

Panel account ≠ site runtime user

A member logs in to the panel with a panel account. Each site's code runs as that site's own system user and group, which no other site shares. One panel administrator is not one mailbox, database or site user.

File permissions and process isolation

The site root is owned by root, so a site cannot open its own boundary even if it sets its files to 0777. PHP-FPM gets one pool per site. Apache (mod_php) gets one instance per site by default. Each site's runtime logs can be read only by that site's user and root.

Links cannot cross the boundary

Archives that are extracted or restored in the panel never produce symbolic or hard links. Such entries, ../ paths and absolute paths are skipped and listed. nginx does not follow a link that points to files owned by another user.

Permissions and ownership

Permission codes decide what an account may do. Every request also checks who owns the resource. Member accounts are free. User groups, roles and delegation (Multi-user and permissions) start at Pro.

Limits and prerequisites
  • Isolation keeps sites apart from each other. It does not protect against someone who already has root on the host, and it is not a replacement for keeping the host patched.
  • If you attach several sites to one shared Apache instance, those sites share a runtime user and lose their separation from each other.
  • Behaviour on this page was verified on the November 2026 release. Older installations should update to get it.

What a refused request looks like

On 2026-11-03 we tested the November 2026 release from the member panel, with two members and several sites. Each member tried to reach the other's sites, files, scheduled tasks, SSH grants, FTP, PHP pools and their logs, backups, domains, WAF logs, reverse-proxy and forwarding rules. All of these requests were refused.

For another member's resource, the refusal is byte-for-byte the same as for an ID that does not exist, so members cannot discover what others own. The isolation check script passed 72 of 72 checks, including the case where a site had made all its files 0777.

The normal path for a maintainer

  1. The site owner creates the site, binds the domain and requests a certificate.
  2. The owner opens a site SSH grant (for example 24 hours) and passes the key and its password to the maintainer.
  3. The maintainer works through SSH / SFTP inside the site, or uses FTP.
  4. The grant expires, or the owner revokes it, and open sessions are closed.
N Nodekeeper

All-in-one Linux server management agent.

Support
[email protected] WhatsApp: +817093066006

© 2026 Nodekeeper. All rights reserved.