FastX is a program for connecting to the HPC systems with a GUI desktop environment. It is similar to No Machine connections but is newer and a little more robust when using Duo 2 factor authentication. Please see the FastX documentation site for detailed information on how to use FastX. FastX will send an automatic authentication request to your registered device if using the Duo app. Otherwise it will make a phone call to your registered number. Unlike No Machine though there is a much longer time out so it is more forgiving of slow push response times or the latency of a phone call for authentication. Another benefit that FastX has over No Machine is that you can close a remote desktop session but as long as the FastX program and the connection to the server was not disconnected the underlying ssh session is still active. This means that sessions can be started and stopped on the same server without triggering additional authentication requests from Duo.
FastX3 is available on Argon login nodes in addition to FastX2. The download of the FastX3 client can be gotten from the same place as the FastX2 client, or directly from StarNet at https://www.starnet.com/download/fastx-client
You can download the FastX2 client from the FastX - ITS Help Desk - Information Technology Services at The University of Iowa page. You will need to sign in with your HawID and password. On the next page that opens up you will see buttons to download a client. Select the one that is appropriate for your system.
Connecting to HPC systems
To connect to the HPC systems, you will need to create entries for the hosts. To create a new entry click on the green + button of the FastX toolbar. This will open up a connection editor.
Be sure to set the User field to your HawkID. Then click on the Save button. Once this is established the server connection will appear in the connection list.
Double click on the connection entry to establish an ssh connection. You will be prompted for a password if you are not using a key and Duo will autopush an authentication request to your default device with the Duo app or a phone call to your Duo registered phone number. The screen will now look like the following:
Once the Duo authentication has been approved click on the plus sign in the top-right to start a new session. This will bring up a menu with some common session options.
Select the one that you would like to use and it will start up in a new window. When you are finished with a session you can log out of it as normal. This will leave an ssh session open to the server so that any further sessions on that server will not need to go through the Duo authentication. To disconnect from the server completely, either exit FastX or right-click on the server name and select Disconnect.
Sessions can be resumed if they are not terminated when the FastX program is closed. This means that you can disconnect from a server but leave the session running and reconnect to it later. In this scenario, the back end ssh connection to the server has to be established so this will require Duo authentication. But once the ssh connection is up FastX will find any existing connections on the server. What is important to keep in mind here is that there is more than one login node for the HPC system, and that they are selected in a round robin manner, so that a connection to the HPC system will resolve to one of the available login nodes. This is important to remember when trying to reconnect to sessions as your new connection will need to land on the same host as the session that you want. If you do this frequently you may want to create explicit connections for each login node.
We kindly ask that you please terminate any sessions that you no longer need as they do use resources.
FastX Desktop Connection Issues
When connecting to Argon with FastX version 2 (or later) to open a graphical desktop session such as MATE or KDE, you might get an error, such as:
The command "mate-session" exited
Could not connect to session bus: Failed to connect to socket
This can occur if you install Anaconda in your home account and select "yes" for the installer to initialize Anaconda with conda init. That option modifies your ~/.bashrc so Anaconda is conveniently configured every time you log in, but the modification also causes graphical sessions to use dbus software supplied in Anaconda, which prevents them from starting. To solve this problem, first check which version of conda you have by running 'conda --version'.
Note that only new sessions you start after making the following changes will be free of the problem; you should discard any existing FastX sessions.
Prior to 4.6.0, edit your ~/.bashrc file to comment out all the lines in the "conda initialize" section. In future sessions, when you want to use Anaconda at your command prompt or in a job script, you'll first need to initialize conda. For example, if your Anaconda3 installation uses its installer's default path, use the following command to make conda available:
exec "$($HOME/anaconda3/bin/conda shell.bash hook)"
If your conda version is 4.6.0 or newer, the previous method still works, but a better method is available. Instead of commenting out the "conda initialize" section in your ~/.bashrc file, configure conda not to automatically activate the base environment:
conda config --set auto_activate_base false
In future sessions (including jobs), you can use 'conda activate' to load any environment you specify.