Skip to content

Create a user login

The administrator installs services and manages provider credentials. Each person runs harnesses in a separate ordinary account. Run this once per new account after installing an all-in-one profile. If the account already exists, skip to login. No provider key is copied to the user.

1. Administrator: create the login

In the workstation Bash shell from the installation guide, keep RHEL_HOST and SSH_OPTIONS for the intended server. Supply the user's public SSH key:

printf 'User public SSH key absolute path: '
IFS= read -r USER_PUBLIC_KEY
scp "${SSH_OPTIONS[@]}" "$USER_PUBLIC_KEY" "$RHEL_HOST:~/praxis-user.pub" &&
ssh -t "${SSH_OPTIONS[@]}" "$RHEL_HOST" 'bash -l'

In that administrator SSH session:

cd ~/secure-single-server-deploy
sudo dnf module switch-to -y nodejs:22
sudo dnf install -y nodejs npm git python3 openssh-clients policycoreutils
sudo scripts/common/harness-user --user praxis-user \
  --ssh-public-key "$HOME/praxis-user.pub"
exit

The helper creates a private home, authorizes the public key, restores SELinux labels and installs praxis-harness, praxis-harness-config and version pins. It grants no sudo or service-group membership and refuses existing accounts or home paths. Use a distinct account name and public key for each person. The original administrator login remains available for service operations.

2. User: log in

On the user's workstation, use the matching private key, which stays there. Enter the server's DNS name or IP, without the administrator username:

{
  printf 'RHEL hostname or IP: '; IFS= read -r USER_HOST
  printf 'Your SSH private-key path: '; IFS= read -r USER_SSH_KEY
}
ssh -o IdentitiesOnly=yes -o ForwardAgent=no -i "$USER_SSH_KEY" "praxis-user@$USER_HOST"

Continue with user setup and usage to install the pinned CLIs and choose Qwen, OpenAI or Anthropic. Remote-gateway users instead follow client setup on their own machines.

For optional sandbox execution, the administrator installs OpenShell; individual sandbox access awaits OpenShell user enrollment.