= Forward X11 applications to a macOS client = Some graphical applications running on a managed Linux clients work well when forwarded to a X11 server on a remote PC. The following example describes the use case to connect from a personal macOS PC to a remote managed Linux PC at ETH and use such an application on it. == Install an X11 server on macOS == Download and install [[https://www.xquartz.org/|XQuartz]] on your personal macOS PC == Connect to the ETH network == Make sure you're connected to the ETH network by either: * [[Workstations/Network/Infrastructure/802.1xMacOS|WLAN]] * or [[Workstations/Network/VPN/MacOSX|VPN]] == Configure the X11 server == * Start the newly installed application '''XQuartz''' * In the menu '''Preferences''' select '''Security''' * Activate '''Authenticate connections''' * Activate '''Allow connections from network clients''' * Restart the xquartz background service either by issuing the following commands in your terminal: {{{ sudo launchctl unload /Library/LaunchDaemons/org.xquartz.privileged_startx.plist sudo launchctl load /Library/LaunchDaemons/org.xquartz.privileged_startx.plist }}} or by restarting your macOS PC == Configure your ssh client == Add the following lines to the file `~/.ssh/config` on your macOS PC: {{{ Host User Hostname .ee.ethz.ch ForwardAgent yes XAuthLocation=/opt/X11/bin/xauth ForwardX11 yes ForwardX11Trusted yes }}} Where `linux_pc` is either the PC you have been assigned for work or one of the student PCs `tardis-[a|b|c|d][01-25]` and `eth_username` is your ETH username. == Run a graphical application == * Open a ssh connection to your Linux PC at ETH {{{ ssh }}} * If you haven't connected to `linux_pc`, verify the shown [[SshFingerprints|SSH host key fingerprint]] before confirming to accept it's public key: {{{ The authenticity of host '.ee.ethz.ch' can't be established. ED25519 key fingerprint is SHA256:OFAfZRlkUtvcY6pMkLJGhViGACMc+GFWT7prHEO5Lt8. Are you sure you want to continue connecting (yes/no)? yes }}} * Start the graphical application you'd like to use from the commandline, for example {{{ xclock }}}