DEV Community

subhra74
subhra74

Posted on • Edited on

How to make your life easier on remote Linux servers (SSH)

When it comes to accessing and performing activities on remote servers using SSH, there are only few choices one can get. Most people use Putty and a graphical SFTP client like WinSCP or FileZilla to get their job done. Alternatively one can use web based control panel like Cockpit or Ajenti, which provides web based terminal and some graphical tools.

But still most of the time it's only the command line which becomes the last resort. Consider a few situation; you have to dig through some error messages from a huge log file of hundreds of mb or several gb. Or you have to update some configuration file /etc directory, which requires to use sudo while saving or changing the file. Command line is the only choice you have, and if you are not really a cli pro or simply do not want to go through all the hassle of using difficult command line options, you might face some difficulty.

Well there is one tool that might be of some help, and it was written specifically to provide simple graphical interface for most common tasks performed on servers.

Introducing Snowflake SSH client

Its an open source SSH client, with some built in useful tools, hosted on GitHub.
Lets see some common scenario where it can be useful.

Digging through huge log files

Sure you can use grep, vi, nano or less, but all of them are a bit restricting. Alternatively you can download it to your computer and dig through it, however it will take significant time to download the file. Snowflake has a built in log viewer for this purpose. It analyzes the file on server (without downloading it) and divides it into pages. It allows searching through the pages as well. Result is much less memory consumption and smooth navigation through the file.

Editing or managing files with sudo

If you need to edit a file, which is modifiable only by root user, you will again have to fall back to command line, using sudo vi or sudo nano. Same is true for renaming/creating/deleting files or directories which requires root permission. Snowflake gives you a graphical alternative. Whenever you perform such actions via its built in text editor or file browser, you will be prompted for an option to use sudo. If you agree it will execute sudo for you.
enter image description here

Finding files

Unix find command is very powerful but also has a tough syntax. If you use Snowflake, you can do powerful search operations without learning all the command line options. Also it supports searching through compressed files like tar and zip as well.

enter image description here

Built in terminal

If you use WinSCP or FileZilla, you need to launch Putty for performing command line operations. Snowflake has built in terminal emulator with command snippets.
You can save your mostly used commands as snippets and run them later easily.
Not only you can launch the terminal from file browser to switch to a folder in terminal, but also you can even execute a script from file browser itself.

enter image description here
enter image description here

View system load and processes

If you are a Linux/Unix pro you can do this easily using top. But it's not very friendly if you are new at this. Also htop is great but usually not installed on most systems.
Snowflake comes with a built in task manager like utility, which lets you view remote system load and processes easily. You can search, filter and kill processes very easily with an option for sudo.
enter image description here

enter image description here

Other helpful utilities

Snowflake comes with many built in utilities like disk space analyzer, port analyzer, systemd service manager, SSH key manager etc which can provide alternative to many complex command like tools.

enter image description here
enter image description here
enter image description here
enter image description here
enter image description here

Hope you will find Snowflake useful and it will help you save some time and effort while using SSH and remote servers. If you feel some important utilities are missing, please suggest them on GitHub.

Top comments (21)

Collapse
 
mikekgr profile image
Mike Kranidis

Dear @subhra74 ,
first of all, I congratulate for your excellent snowflake application!
I have tried it a couple of days, being installed in my Windows 10 laptop, so far I can reach my mostly Ubuntu based server nicelly !
I have a question though, I want to know where the settings are keep, mostly the Session manager settings. Is it possible to transfer these settings to another snowflake installation and not doing them manually one by one?

Thanks and Best Regards,
Mike Kranidiz

Collapse
 
subhra74 profile image
subhra74 • Edited

Session details are store in a file session-store.json. This file can be copied to transfer the session details. In future import export feature will be there.

Path on windows: %USERPROFILE%\snowflake_ssh\session_store.json

On Linux:
$HOME/snowflake_ssh/session_store.json

Collapse
 
mikekgr profile image
Mike Kranidis

Dear @subhra74
many thanks for your fast reply and the information given. Please consider to make your fabulous application as portable as possible, ex to be even running from external USB drive and have all adjustments settings and session storings inside the application directory (and not relied to the WindowsOS user profile settings etc).
Again many thanks for making snowflake !!!

Best Regards,
Mike Kranidis

Collapse
 
javierelices profile image
Javier Elices

I have just tried it and I like it! I will probably be using it from now on. Great job!

I have reviewed the documentation and I could not find anything regarding keyboard shortcuts. Are shortcuts documented somewhere?

Thanks a lot!

Collapse
 
email2vimalraj profile image
Vimalraj Selvam

Looking great. Few questions:

  • Do I have to install the snowflake on the remote server which I wanted to access?
  • When can we expect the Mac support?
Collapse
 
subhra74 profile image
subhra74 • Edited

No. It only needs to be installed on local computer, similar to Putty, WinSCP or FileZilla

Mac version will probably be coming next month

Collapse
 
email2vimalraj profile image
Vimalraj Selvam

This is really useful. I've set it up in Mac with the jar version. My initial feedback is to enable the copy paste, currently it is hard to perform the copy paste from the UI.

Thread Thread
 
subhra74 profile image
subhra74

I have fixed it for Windows and Linux (v1.0.3), but issue is still there for Mac
However shortcut keys works. For mac use Command+C and Command+V for copy and paste

Collapse
 
i2matrix profile image
i2matrix • Edited

this is excellent program. But it is lacking mosh support (see mosh.org), which is the most important thing lacking. Kindly consider adding mosh client support, because network connection is many times unstable, or many times I keep my laptop in sleep/hibernate mode with logged in servers, and then when I reopen the laptop from hibernation, my loggedconnections become again auto active with mosh; this is not possible with ssh.

Collapse
 
subhra74 profile image
subhra74

Great suggestion, will check if this can be added in future

Collapse
 
mostlychris profile image
mostlychris

It doesn't seem to work with IP and non-standard ports on Windows. I can connect to a server using putty but the same settings in this app don't work.

Collapse
 
subhra74 profile image
subhra74

Are you running SSH on some custom port other that port 22? That should be supported unless there is some bug. In that case please create an issue on GitHub repo.

Collapse
 
mostlychris profile image
mostlychris

This appears to be network blocking at my office. It works on non-standard ports from my house. A proxy option would be helpful.

Collapse
 
catsand profile image
AND

Hi. Good program. Thanks you. I think i will start use it.

Collapse
 
nobodysbetter profile image
Nobodysbetter

I really want to make this work, but I seem to have a problem with it on servers where I use a ed25519 key to ssh instead of password. Can you help me?

Collapse
 
subhra74 profile image
subhra74

Unfortunately, support for ed25519 is under development. So it's not possible to use ed25519 at the moment.

Collapse
 
rathel profile image
rathel

Does this support jumphosts?

Collapse
 
subhra74 profile image
subhra74

Unfortunately not yet, but planned for future

Collapse
 
skryking profile image
Jason Ormes

Its missing gssapi/kerberos support. Otherwise it looks great.

Collapse
 
eternityforest profile image
Daniel Dunn

This looks fantastic! Will it be possible to add plugins in the future?

Collapse
 
subhra74 profile image
subhra74

In future plugin feature will be there