A convenient SSH GUI

Safe Passage

Article from Issue 240/2020

Muon/Snowflake lets you manage SSH access via an easy-to-use GUI with a wealth of useful functions.

Many power users believe they can manage connections more effectively from the command prompt, but a graphical interface offers several benefits. Snowflake is a graphically-based SSH terminal that comes with built-in SFTP support. This article describes how to set up secure connections and transfer files with Snowflake.

But first a note: Now that Snowflake has started to gain some traction around the world, the developers have decided to change the name (a time-honored open source prerogative). The tool is now called Muon, but many references to it online, including the official project documentation and even the GitHub page, still refer to it as Snowflake, so I'll call it Snowflake for this article. The documentation will probably update over time, so if you have trouble tracking down Snowflake by the time you read this article, look for Muon and know it is the same tool.


Snowflake runs on Linux, the BSD derivatives, HP-UX, and Windows; a version for macOS is under development. You only need to install the software on the client. Snowflake requires at least Java 11, regardless of whether you prefer Oracle's proprietary version or the free variant.

Versions 1.0.3 for Java 11 and 1.0.4 for Java 13 are available on the GitHub page [1]. If you already have Java 13 installed, use the newer 1.0.4 version. The existing Java version is revealed by typing the command java -version in a terminal window.

In addition to an MSI installer for Windows and a generic installer for 64-bit flavors of Linux, the pure Java version is also available, as is a deb package for Debian and its offshoots. The packets weigh in at around 25MB each.

Under Debian and derivatives, you can install the package on your system with apt, specifying the full path. The package is usually located in ~/Downloads/, so that the command

<C>sudo apt install <C><C> ~/Downloads/snowflake_1.0-3.deb<C>

will typically do the trick. The command


runs the generic installer. The application ends up in /opt/snowflake/.

In both cases, you then proceed to launch the software in a terminal or from the menu. Depending on the distribution, you may need to give the file the appropriate permissions before starting it. This is what the command in the first line of Listing 1 does; you can start the Java package immediately after the download with the command from the second line. In the test, the program behaved identically for all installation methods.

Listing 1


$ sudo chmod +x snowflake-1.0.3-setup-amd64-bin
$ java -jar snowflake.jar

After the first start, you will see a window with a button for new connections at top left. On the right, there are three buttons that, from left to right, end a session, access the configuration, and provide information about Snowflake. Thanks to useful presets, Snowflake's configuration is quite a short process (Figure 1). To the left of these switches, a menu lets you switch between connections.

Figure 1: The presets in Snowflake offer features that include changing the number of simultaneous connections or requiring a confirmation before deleting files.

New Connections

Except for a lot, of white space there is nothing else to see at first. A click on New Connection opens the Session Manager, which follows the same principle as FileZilla. Enter the required access credentials for the remote stations. If required, you can also create folders via New Folder to which you can distribute the computers for a better overview.

To enter a remote host, first enter a meaningful freely selectable name and then the IP address in Host. Complete the User and Password fields with the appropriate information. Local Folder and Remote Folder let you specify the directories that act as the starting point. However, you can leave these fields empty and later manually navigate to the desired starting point (Figure 2).

Figure 2: In Snowflake's Session Manager, you enter the credentials of the remote parties you wish to connect to and save them for future sessions.

To authenticate with a key at the remote terminal, enter the private part of the key including the path in the bottom field. In this case, the password field can remain empty, because the software asks for the password for the key before connecting. A click on Connect then connects you to the desired computer.

In the test, where all servers were secured with keys, the connection worked in this way on some machines, but not on others. The solution to the mystery lay in the different protocols used to create the keys: Those created using RSA worked, while those with the ED25519 protocol refused to cooperate.

The difference is in the private key's header. For keys generated with RSA, the top line contains BEGIN RSA PRIVATE KEY, whereas for ED25519 it contains BEGIN OPENSSH PRIVATE KEY. This is currently confusing Snowflake, as can be seen in a bug report on GitHub [2]. Until the Snowflake developers have fixed this bug, you will want to create any new keys with RSA. Converting the key into the format supported by the program did not work in our lab.

Clients and Servers

After opening the connection, you will find yourself in the Files tab of the SFTP-based file manager. On the left, you will see the directory tree on the remote computer, on the right the tree on the client. In this view, you can navigate through directories via the menu; trigger actions such as copying, deleting, renaming, and moving files; or packing and unpacking archives via the context menu. Changing permissions and downloading files is also possible (Figure 3).

Figure 3: The file manager located in the Files tab shows the selected server on the left and the client on the right.

Moving files or directories from the client to the server and vice versa is a simple drag and drop action. For actions with a larger scope, you can run them in the background. In the same tab, besides the file manager, there is a text editor, a log viewer, and a detailed search function based on the Linux find command (Figure 4).

Figure 4: In addition to a file manager, a text editor, and a log viewer, the tab Files integrates a search function based on the powerful Linux find command, which offers various options for narrowing down the desired object.

The log viewer is particularly practical, as it opens even logs with a size of several terabytes quickly, making downloads unnecessary. Scripts can be executed via the file manager by opening the context menu of the script file and selecting Run file in Terminal.

If you want to manage another server instead of the client in the file manager, click on the drop-down menu in the right-hand view that contains the path of the client and select New Tab and then SFTP. Now connect to another server stored in the Session Manager or to be newly entered. You can then transfer files between the two servers.

You need root rights on the server for some actions. This also works in the file manager if you configured sudo on the server in advance. If an action requires root privileges, Snowflake asks if you want to use sudo. Even the text editor can call sudo.

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Introduction

    This month in Linux Voice.

  • Tutorial – Manuskript

    The Manuskript editor is all you need to jump start your next writing project.

  • Linux News
    • OSI accepting individual memberships.
    • OpenGL 4.3 and ES 3.0.
    • License Protection
    • Raspberry Pi ramps up production.
    • FSFE protects licences when bankruptcy strikes.
    • Gaming passwords secured with My1login.
    • Web Apps new to Ubuntu.
    • LPI Forum
    • RSA Anti Rogue App.
    • US Cell Phone Right-to-Know Act.
  • A tale of long-lived Free and Open Source projects

    I was reading an Atlanta Linux Enthusiasts (ALE) mailing list recently that has been around a long time. Many of the people on that list have been reading and writing to the list for 20 years. One of them had just installed a version of the Common Desktop Environment (CDE), which was developed when I was working at Digital Equipment Corporation (DEC) more than 20 years ago.

  • Kit Scenarist

    Creative writers take note! Kit Scenarist is a free application designed to simplify the process of writing a screenplay.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More