Overview
This page describes the key files that secure a configuration and the configuration files that control which options and functions are available. It also explains how to manage them.
The page is split into several sections:
| Master Keys | The key files that secure the configuration |
| Control Configuration | Settings for the control, the operator profiles and the operators |
| Agent Configuration | Settings for the agent - connections it allows and functionality available |
| Multiple Configurations | Creating and maintaining multiple versions of the configuration files |
Master Keys
A configuration has two key files these are created and saved by the configuration assistant:
| Root Key (root CA) | The root of the configuration's chain of trust. It is rarely needed, so keep it offline in a safe place |
| Key Encryption Key (KEK) | Authorises sensitive operations such as enrolling devices, signing configuration files and managing operators. It unlocks the intermediate keys stored in the configuration folder. Re-creating the intermediate keys creates a new KEK file - see Re-create Intermediates |
⚠️ The root key (root CA) is not recoverable. If it is lost you will need to create a new configuration and re-enrol every device, so store it safely and keep a backup.
At present both keys can only be saved as files.
Control Configuration
The control.ini holds the control's settings, the operator profiles and the operators.
⚠️ The sections of control.ini are signed to ensure that no unauthorised changes can be made - only the Name values are not. After editing the file it must be re-signed - see Sign Files.
Name
Configuration NameControlConfigurationName |
Not SignedThe name of this control configuration, offered when enrolling an additional control. The initial file created by the configuration assistant is named Baseline |
Short NameShortName |
Not SignedOptional friendly name for the control, shown as Short Name on the Devices tab of Settings. Up to 25 characters - letters, numbers, spaces, underscores, dots and hyphens only |
Control Settings
Stored in the [Customer] section.
Allow Default OperatorAllowDefaultOperator |
Whether Save as default is offered on the Load Operator dialog. Default: on |
The section also holds values Remote Tools sets when the configuration is created - its version, ID, connection timers, gateway, relay and download addresses, key storage and signature. Do not edit them; changing them can stop the control from connecting.
Operator Profiles
A profile is a set of permissions that control the functionality that is available locally at the control and remotely when connected to an agent. Each operator is assigned a profile.
Each profile is saved in the control.ini as a section with its name and .profile - for example [Profile_1.profile].
| Profile Name | The name of the profile. The Configuration Assistant creates one named Profile_1; If extra profile sections are added they should be given an unique meaningful name |
The tables below show the editable settings, grouped by function.
Control Settings
Applied at the control when the operator signs in.
Must be logged inMustBeLoggedIn |
If set to true functions can only be opened when a user is logged in at the remote agent. Default: off |
Create/Edit CustomersCreateEditCustomer |
Allows the operator to create a new configuration, or edit this one |
Direct ConnectionsDirectConnections |
Allows the operator to connect straight to an agent rather than through a relay |
Relay ConnectionsRelayConnections |
Allows the operator to connect to an agent through a relay |
View DevicesViewDevices |
Allows the operator to view the devices enrolled in the configuration |
Manage DevicesManageDevices |
Allows the operator to enrol and remove devices |
📌 An operator needs at least one of Direct Connections or Relay Connections, or they will not be able to reach any agent.
Agent Information
Agent InfoAllowAgentInfo |
Allows the operator to open Agent Information |
User ControlAgentInfoUserControl |
Allows the operator to log users out, log them in and switch user on the host |
Manage ProcessesAgentInfoManageProcesses |
Allows the operator to stop processes running on the host |
Manage ServicesAgentInfoManageServices |
Allows the operator to start, stop and manage daemons and services on the host |
Update AgentAllowUpdateAgent |
Allows the operator to update the agent |
File Manager
Allow File ManagerAllowFileManager |
Allows the operator to open File Manager |
Send FilesFileManagerSend |
Allows the operator to transfer files to and from the agent |
Edit FilesFileManagerEdit |
Allows the operator to rename and delete files, and create folders |
File ViewerFileManagerViewer |
Allows the operator to open a file in the viewer |
File EditorFileManagerFileEditor |
Allows the operator to edit the contents of a file in place |
Favorites OnlyFileManagerFavoritesOnly |
Restricts the operator to saved favorites and the folders beneath them |
Edit FavoritesFileManagerEditFavorites |
Allows the operator to add and remove saved favorites |
Zip/UnzipFileManagerZipUnzip |
Allows the operator to compress and decompress files and folders |
Hidden FilesFileManagerHidden |
Allows the operator to see hidden files and folders |
Change PermissionsFileManagerChangePermissions |
Allows the operator to change file and folder permissions |
ExecuteFileManagerExecute |
Not used at present |
Port Forwards
Allow Port ForwardsAllowPortForwards |
Allows the operator to open Port Forwards |
On DemandPortForwardOnDemand |
Allows the operator to open and close port forwards manually |
On ConnectPortForwardOnConnect |
ProfessionalAllows the operator to use port forwards that open automatically when a connection is established |
Add/Remove Port ForwardsPortForwardAddRemove |
Allows the operator to create and delete port forwards |
Terminal
Allow TerminalAllowTerminal |
Allows the operator to open a remote shell session on the agent |
Tasks
Allow TasksAllowTasks |
Allows the operator to open the tasks function |
Run TasksTasksRun |
Allows the operator to run tasks |
View TaskTasksView |
Allows the operator to view the details of a task and its actions |
Create/Edit TasksTasksCreateEdit |
Allows the operator to create, change and remove tasks |
View Work ItemsTasksViewWorkItems |
Allows the operator to view the results of a task work items |
Batch Tasks
Allow BatchAllowBatch |
ProfessionalAllows the operator to open Batch Tasks |
Create/Edit BatchBatchCreateEdit |
ProfessionalAllows the operator to create, change and remove batch tasks |
Run BatchBatchRun |
ProfessionalAllows the operator to run batch tasks |
Log Viewer
Allow Log ViewerAllowLogViewer |
Allows the operator to open Log Viewer |
Add/Remove FavoritesLogViewerAddRemove |
Allows the operator to manage Log Viewer's saved favorites |
Remote Desktop
Allow Remote DesktopAllowRemoteDesktop |
Allows the operator to view and control the agent's desktop |
Privilege Elevation
Allow Privilege ElevationAllowPrivilegeElevation |
Allows the operator to switch a function to privileged mode (root/System) |
Each profile section also holds its version and signature, set by Remote Tools - do not edit them.
Operators
An operator is someone who signs in to the control. Each operator is assigned a profile, which sets their permissions.
Each operator is saved in control.ini as a section with their name and .user - for example [admin.user].
Operators can't be edited by hand - use Operator Management to add, remove or change them.
📌 The operator password is separate from the configuration password. The configuration password unlocks the configuration; the operator name and password identify who is using it.
Agent Configuration
agent.ini holds the agent's settings, these control the connections and functionality it allows.
⚠️ agent.ini settings take precedence over operator profiles. For example, switching on Must be logged in here means functions can only be opened when a user is logged in at the device, whatever the operator's profile says.
Name
The name of the agent configuration, at the top of the file.
Configuration NameAgentConfigurationName |
Not SignedThe name of this agent configuration, offered when enrolling an agent or using Update Configuration, and shown as Configuration in Agent Information. The Configuration Assistant creates one named Baseline - see Multiple Configurations |
The [Policy] section holds the agent's settings, the editable items are listed below.
The section also holds other internal values - its version, keep-alive timer, gateway address and timing, and signature. Do not edit them; changing them can stop the agent from connecting.
⚠️ This section is signed to ensure that no unauthorised changes can be made.
After editing the file it must be re-signed - see Sign Files.
Connectivity
Run ServerServer |
The agent runs a server that allows inbound connections from the control. Default: on |
Server AddressServerAddress |
The address the agent listens on. May be left blank, in which case the agent listens on all interfaces |
Server PortServerPort |
The port the agent listens on. Default: 5077 |
Manage NAT settingsManageNat |
Allows the agent to map an external port on the router when it is behind NAT, using UPnP. Only effective if the router supports UPnP and has it enabled. Default: on |
Behaviour
Allow Privilege ElevationAllowPrivilegeElevation |
Allows operators to switch a function to privileged mode (root/System). Default: true - see Privilege Elevation |
Worker ModeWorkerMode |
The user account used when opening functions or running tasks - see Worker Mode. Default: Logged In User |
Must be logged inMustBeLoggedIn |
Only allows functions to run when a user is logged into the host operating system. Default: false |
Worker Mode
The user account used when opening functions or running tasks.
Logged In UserLoggedInUser |
Work runs as the user currently logged into the host. The default. |
Worker AccountWorkerAccount |
Work runs as a dedicated unprivileged account created by Remote Tools. Suitable for headless machines, as it does not need anyone logged in. |
Account (operator supplies credentials)Account |
The operator is prompted for the username and password when connecting, and work runs as that account. The credentials are verified by the host operating system. |
ElevatedElevated |
Work runs with the agent's own elevated privileges (root or System). The least restrictive setting, so use it with caution |
NoneNone |
This will stop all functionality - Not designed to the used yet. |
Agent Functions
File ManagerAllowFileManager |
Allows operators to browse the agent's file system |
File TransfersAllowTransfer |
Allows operators to send files to and from the agent |
TasksAllowTasks |
Allows operators to run commands, scripts, packages and transfers as tasks |
Remote DesktopAllowRemoteDesktop |
Allows operators to view and control the agent's desktop |
Port ForwardsAllowPortForwards |
Allows operators to forward network traffic over the connection |
TerminalAllowTerminal |
Allows operators to open a remote shell session |
Agent InfoAllowAgentInfo |
Allows operators to view agent, host, hardware, service, process and session information |
Log ViewerAllowLogViewer |
Allows operators to view the contents of text files on the agent |
File EditorFileManagerFileEditor |
Allows operators to edit file contents in place on the agent |
Fit Remote ScreenRemoteDesktopFit |
Allows Remote Desktop to change the agent's screen resolution to fit the operator's window. With it off the session still opens and the Fit remote screen button is disabled, noting that the remote computer's configuration forbids it |
unique.ini
unique.ini is an optional file that adds custom details to one agent. Unlike agent.ini it applies only to the agent it is placed on, and it is not signed, so it can be changed without the KEK. The file has two parts:
| ShortName | A friendly name for the agent, shown as Short Name in Agent Info. Up to 25 characters |
| [User_Defined] | Professional key = value pairs with custom information |
Example
ShortName = Office Server 2 [User_Defined] Site = London Role = Web Server
User Defined values
ProfessionalThe key/value pairs are added to the information the agent tells the control about itself, and are used in the following places:
- Shown in the User Defined section of Agent Info
- Offered as filters for global tasks, so a task can be targeted to devices matching the custom details - see Tasks
- Offered as filters when choosing the targets of a batch - see Batch Tasks
The User Defined section is limited to 150 bytes:
- Names and values may only contain letters, numbers, spaces, underscores, dots and hyphens
- The User Defined section must be small - a handful of short entries.
- An error when reading the entry will cause an error to be displayed in the agent information table or for the shortname for it not to display
The unique.ini should be placed in the same folder as the agent.ini file:
| Windows | C:\ProgramData\remote-tools\agent |
| Linux | /etc/remote-tools/agent |
| macOS | /Library/Application Support/remote-tools/agent |
When installing the agent, if unique.ini is in the same folder as the installer, it is copied into place automatically.
unique.ini is read when the agent starts, so restart the agent after adding or editing the file.
Multiple Configurations
When enrolling an agent or an additional control, you choose which configuration file is deployed to it. You can create several versions of each configuration file, each with different settings.
The files are kept in the configuration folder - open it with Open on the Configuration tab of Settings:
| configurations/agent | Agent configurations |
| configurations/control | Control configurations |
Configuration names
Each file has a configuration name at the top - AgentConfigurationName or
ControlConfigurationName. These names are the choices offered in the enrolment dialog, so
each one must be unique. If two files share a name, only one of them is offered.
To add a configuration file, copy an existing one, give it a new file name and configuration name, edit it as required and Re-sign it.
An existing agent can be switched to a different configuration with the Update Configuration function.
⚠️ Test every new or edited configuration file before deploying it - a mistake can stop the devices working.