A convenient SSH GUI
Safe Passage
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.
Basics
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
<C>sudo./snowflake-1.0.3-setup-amd64.bin<C>
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
Installation
$ 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.
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).
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).
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).
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
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.
News
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.
-
OSI and LPI Form Strategic Alliance
With a goal of strengthening Linux and open source communities, this new alliance aims to nurture the growth of more highly skilled professionals.
-
Fedora 41 Beta Available with Some Interesting Additions
If you're a Fedora fan, you'll be excited to hear the beta version of the latest release is now available for testing and includes plenty of updates.
-
AlmaLinux Unveils New Hardware Certification Process
The AlmaLinux Hardware Certification Program run by the Certification Special Interest Group (SIG) aims to ensure seamless compatibility between AlmaLinux and a wide range of hardware configurations.
-
Wind River Introduces eLxr Pro Linux Solution
eLxr Pro offers an end-to-end Linux solution backed by expert commercial support.
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.