##### 16.5.19.4 Defining a remote server

Remote servers can be defined via the user interface, as described in Setup the remote servers. This user interface will create a remote.xml file in the user's gps directory, which in turn can be installed in any plug-ins directory to set the values system-wide. This file will define for each server the node `remote_machine_descriptor`.

The attributes for this node are:

`nickname (mandatory)`
  Identifies uniquely the server in GPS.
`network_name (mandatory)`
  The server's network name or IP address.
`remote_access (mandatory)`
  The tool's name used to access the server. Shall point to one of the tools defined in Defining a remote connection tool.
`remote_shell (mandatory)`
  The shell's name used to access the server. Shall point to one of the shells defined in Defining a shell.
`remote_sync (mandatory)`
  The remote file synchronisation tool used to synchronize files between the local host and the server. Only `rsync` is recognized currently.
`debug_console (optional)`
  Can take the value `True` or `False`. Tells if a debug console should be displayed during connection with a remote host. False by default.

The children for this node are:

`extra_init_commands (optional)`
  Complex child. Can contain `cmd` children whose values are used to set server specific initialization commands.
`max_nb_connections (optional)`
  Positive number representing the maximum number of simultaneous connections GPS can launch.
`timeout (optional)`
  Positive number representing a timeout value (in ms) used for every action performed on the remote host.