Giter Site home page Giter Site logo

subhra74 / snowflake Goto Github PK

View Code? Open in Web Editor NEW
2.1K 46.0 227.0 2.79 MB

Graphical SFTP client and terminal emulator with helpful utilities

License: GNU General Public License v3.0

Java 99.15% Shell 0.85%
sftp ssh terminal-emulator disk-space-analyzer command-snippet log-viewer remote-admin-tool remote-shell remote-execution deployment

snowflake's People

Contributors

chaitan64arun avatar mbocek avatar sodki avatar srsbiz avatar subhra74 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

snowflake's Issues

Log viewer doesn't use sudo

When I try to use the log viewer to look at apache logs here: /var/log/apache2/, the files do not open, as sudo is required. The log viewer does not prompt to use sudo to open those files. The text editor is not able to open those files either.

support for http proxy

it would be very interesting to have the possibility to connect through a proxy socks/http, similar to the same function in putty

Feature request Keyboard shortcuts

Most of the linux admins use screen. which allows completely keyboard based operation. snow flake also must support keyboard shortcuts for switching between terminals atleast.

broken symlink causing issues in directory display

I have a broken symlink in my homedir. It is preventing snowflake from loading the directory in the Local Files viewer.

[gmcc@darkstar ~]$ ln -s /tmp/does-not-exist broken
[gmcc@darkstar ~]$ ls -l broken
lrwxrwxrwx. 1 gmcc gmcc 19 Jan 29 23:43 broken -> /tmp/does-not-exist
[gmcc@darkstar ~]$ ls -l /tmp/does-not-exist
ls: cannot access '/tmp/does-not-exist': No such file or directory
[gmcc@darkstar ~]$

When i browse to my homedir on using snowflake it will not load.
I see this error.
Mouse click on table
java.nio.file.NoSuchFileException: /home/gmcc/broken
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(Unknown Source)
at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(Unknown Source)
at java.base/java.nio.file.Files.readAttributes(Unknown Source)
at snowflake.common.local.files.LocalFileSystem.list(LocalFileSystem.java:60)
at snowflake.components.files.browser.local.LocalFileBrowserView.lambda$render$3(LocalFileBrowserView.java:113)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

If i remove the broken file I can view the directory.

some small bugs and feature requests

Really liking it so far!

When creating a new terminal, cursor is not automatically in the terminal (need to click in the terminal to start typing)

when leaving a program e.g. nano the cursor stays in the same place it was while in that app and starts typing in the terminal in middle of the screen (functionality/commands still work though - just a gui thing)

Why when you click on a menu e.g. "ssh keys" or "linux tools" do you need to 'open' it? shouldnt it be automatic if i go to that menu? (or at least an option in the settings to control that)

In ssh keys menu, when selecting a public key im not able to copy to clipboard (maybe make on double click it adds to clipboard)

FEATURE REQUESTS:

when browsing for "private key file" open first to the .ssh folder (or make shortcut to there)

when selecting private key be able to pick from a list of previously used/imported keys

should be able to modify things like snippets and generate ssh keys while not connected to a server
should be able to access network tools while not connected to a server

File transfer Server to Server

Save sudo passwords with a master password (or at least the ability to see passwords of saved connections so we can save passwords there

Ability to see and remove known hosts

Port forwarding

Lock Snowflake with master password

Import/Export sessions between devices - and/or save to a local database file that can be shared/syncthing

Ability to modify other users authorized_keys with sudo

(Is there a plan in the future to build an android version as well?)

(Note: im using the windows version)

ping tool looping and unable to exit.

Hi,

If I put a host in the ping tool and for some reason it cannot ping it the tool either exits with a an error popup (which is fine if a little cryptic) or it spins indefinitely. If it is spinning indefinitely then the 'X' icon in the spinning icon does not cancel the ping process. The only way to exit in this state is to close the app.

To recreate in network tools:

  • click ping.
  • enter non existent host (blob.de.blob.com)
  • wait...
  • click x in spinning icon.
    • if it exits with error immediately click ping again and run again with same value.
  • click x in spinning icon

Expected result - ping task exits and returns you tothe gui
Actual result - ping never ends - spinning icon continues to spin - only way out is to close app

Cheers
Phill

EDIT: Windows 10

Deploy to Central

This project should be deployed to Central, would ease consumption as well.

DarkTheme only availaible in the Terminal.

Hello guys,
Nice Work probably the best ssh client i ever tested for a while. But there is one thing when you work lately is to have a DarkTheme in all the application.
The DarkTheme activated only in the Terminal

Thx for your work !

Adding comma to the port

SSH connection cannot be established because of comma adding to the port number.
After 999 it adding comma like 1,000 to the port number.
Screenshot from 2020-01-31 09-46-30

Feature Request: connections via ssh jumphosts

many people don't have direct connection to the serves they want to work on, instead they need to SSH to a jump host, change to a role, and then SSH further on; this is automatable by various methods using traditional SSH clients, but not a chance in Snowflake. What's more, I am not interested in accessing files or list system services on my jump host, but rather I am after these useful built-in features for the destination server - that but could only be achievable if the SSH "jumping" was incorporated in the Snowflake client - as the client needs to be "aware" of the SSH jump and provide the tools not for the jump host, but for the target host (and be able to switch user along the way on the jump host)...

Such a connection would require following fields:
jumphost hostname, port, user/pw or ssh key
jumphost sudo role
target hostname, port (ssh key from jump host is presumed to be used for authentication)

Of course, it would be nice to be able to aggregate multiple target profiles to one jump host's profile in some sort of a tree profile structure, to make the profile tree nicer and easier to navigate through.

Solution of running Snowflake on the jump host and displaying it into my computer's X server is not available to me, though that would be the easiest way indeed. Also, i want to be able to copy filed between my workstation and the target server directly, not by first pushing or pulling them to the jump host.

Flatpak package

Many linux systems out there (like Linux Mint) support flatpak packages out of the box. Publishing the JAR as flatpak to Flathub would make install (and later upgrades) a breeze.

Feature Request: Make Internal Editor default

I would like to request an option to make the Internal Editor the default action when double-clicking on a file in the File Browser. If this could be an optional preference that can be set, so it's not forced on everyone, especially if someone wants to use an external editor.

Thank you.

Initiate connection on double click

Enhancement Request

Double-clicking a connection in the session manager window should start the connection without having to click the Connect button.

Issues/Feature Requests: Drag and Drop, Global Bookmarks, Path Entry

Currently using v1.0.3 and loving it but finding some missing/non-functional features and quirks. It appears drag and drop from a Windows explorer window to a remote server does not work in either direction. Unfortunately, this then requires using the bookmarks which are local to each site so you have to keep creating bookmarks for your local machine per site if you want to have quick access to multiple directories for uploading/downloading files to/from your servers (again, because drag-and-drop functionality does not work or isn't implemented yet). Another option this brings up is the ability to enter folder paths directory and go to them instead of having to browse from your home directory.

Again, great product and keep up the good work.

Seems logging is borked

While running the app, on console I got these lines (and they tell all):

log4j:WARN No appenders could be found for logger (com.jediterm.terminal.emulator.JediEmulator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Also, the log could be properly formatted, with level, timestamp, etc, as currently it looks like a flow of printlns

Support for high pixel density displays

I have display scaling on Ubuntu set to 200% (my laptop screen is 4k so if I didn't, everything would be really small), but this doesn't work on Snowflake:
screenshot

Ability to work without sftp

When connection to a host that is using dropbear, sftp is commonly not supported. Is there a way to use scp ?

Unable to connect to server using openssh private key

I cannot connect using my private key:

snowflake.desktop[1513]: com.jcraft.jsch.JSchException: invalid privatekey: [B@3ae6f693
snowflake.desktop[1513]:         at com.jcraft.jsch.KeyPair.load(KeyPair.java:948)
snowflake.desktop[1513]:         at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
snowflake.desktop[1513]:         at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
snowflake.desktop[1513]:         at com.jcraft.jsch.JSch.addIdentity(JSch.java:407)
snowflake.desktop[1513]:         at com.jcraft.jsch.JSch.addIdentity(JSch.java:367)
snowflake.desktop[1513]:         at snowflake.common.ssh.SshClient.connect(SshClient.java:62)
snowflake.desktop[1513]:         at snowflake.common.ssh.files.SshFileSystem.connect(SshFileSystem.java:75)
snowflake.desktop[1513]:         at snowflake.components.files.FileComponentHolder.getSshFileSystem(FileComponentHolder.java:306)
snowflake.desktop[1513]:         at snowflake.components.files.browser.ssh.SshFileBrowserView.lambda$render$1(SshFileBrowserView.java:163)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.lang.Thread.run(Unknown Source)

It's related to this post:
https://stackoverflow.com/questions/53134212/invalid-privatekey-when-using-jsch

Make final JAR assembly name carry the version

Much better if you know what version you have than just snowflake.jar (same is in releases downloads, no version). People will anyway create scripts or desktop shortcuts to start it up

Feature Request : Run command(s) automatically after login

I'd like to be able to run a command automatically right after logging in.
With CLI ssh this is accomplished by adding a command between quotes at the end.
Example :
ssh @ "sudo su - "
name is my name (remote account) and user is the remote user I need to switch to.
In this example I don't know the password of but is in the sudoers-file.

But can imagine there are lots of other usages for this request.

Feature Request: SSH Tunnels

Thanks for the well written SSH client. I'm still giving it a test drive. One of the features that I need is to be able to create SSH tunnels to work around firewalls. I do this quite easily using PuTTY. Hope you can include this feature.

cap-000276

Cannot connect to Synology SSH

Hi,
I've been trying out Snowflake to connect to my ssh servers. On ubuntu hosts all is good.

I found however that connecting to Synology NAS SSH produces an error (Unable to connect to x.x.x.x Do you want to retry?)

I've tried lowing port from 20022 to 22. I also tried different encryption strength settings on Synology DSM (low/medium/high).

All to no avail.

SSH from command line of my PC running Ubuntu to same Synnology NAS works fine on all settings.

Is there any setting or logging i can try to solve this?

Thanks in advance

X11 Tunneling

Hi,
I have two different queries/requests:

  1. X tunneling
    When I open a terminal to a LINUX box, I need to have X11 Tunneling (like in putty), so the DISPLAY environment is declared (thats an external sign - the X-Server should be started).
    Otherwise, the Terminal is very limited, to line mode only, which is very restrictive.

  2. Terminal type
    VT100 as terminal type besides the xterms) is very poor and limited, should have more advanced emulations, if possible.

Without doubt, issue #1 is WAY more important

Thnaks,

Shalom

Admin rights for Windows installation means: no installation possible

The one place where I need to connect to SSH servers is in an enterprise environment.

Where I obviously do not have admin rights on my workstation.
Launching snowflake.msi triggers a privilege elevation request.

Is it possible to have a simple archive (zip) for us users to unzip anywhere we want and launch it?

Dual Monitors and Pop-ups

I'm not sure if this is even possible, or if it's up to the Operating System, but I have two monitors and when the sudo pop-up opens when I'm editing a file, the dialog box opens on the other monitor (the primary one in Windows 10 settings). Would it be possible to force the dialog box pop-up to open on the same monitor as where the snowflake app is running? I totally understand if that is not something you can control.

Paegent Integration

Hello,

This is a fantastic start to an interactive terminal. The primary technical issues I see after using this for about 15 minutes is (1) there is no way to integrate Paegent with this application to never ask for the password of the key, or to have a 'Paegent like' feature built-in. Then (2), there is no way to bulk edit/add/delete host entries. I will make another enhancement request for this one.

Thanks for the work, this is great, just not quite ready for production yet.

Import servers from SSH config

Hi,

I have a feature request regarding host management.
Is it possible to import (and hopefully export) hosts from the ~/.ssh/config file in some way?

I already have a good 80 servers defined in there and manually adding them all is a rather large chore.
Additionally, being able to export your servers to that file would be amazing since it would make it very easy to add new servers for use with tools like ansible, which rely on the hosts being defined in the ssh config for passwordless logins.

Thanks!

Does it support bastion/jumpbox config?

In server management, bastion (or jumpbox, jumpserver) is usually used as an ssh gateway. Does snowflake support this? It's essentially a proxy option to the ssh command, sth. like

ssh -o ProxyCommand='ssh -W %h:%p bastion_user@bastion' target_user@target

Is ssh ed25519 key supported?

I have many existing ssh connections for long time and used to connect with terminal. Now I'm trying to migrate to snowflake but could not even create the very first connection. All my keys are ed25519 format.
And I just tried with one rsa key, it worked. So I'm thinking about if the ed25519 is not supported (yet).

Feature Request: SSH key management, ENTER key, Putty Sessions

Thank you for making this software, it looks great and has some really ambitious features. I do wish a few small things would work different or better.

First, SSH key management is confusing. It allows for creating new keys easily, but not for using existing keys. I wish that in the New Connection window there was a box for the existing SSH public key, so I can use a key I already have for a particular machine. Some of my servers do not allow interactive logon, and I'm having trouble figuring out how to connect to them.

Next, I wish I could just press the ENTER key for some dialog boxes, instead of having to click Yes or OK. I'm already typing something, just accept the input with ENTER. Also, is it more common for the choices to be OK and Cancel, instead of Yes and No, like on the input password pop-up dialog.

Last, I wish I could import my existing Putty sessions. This is a big one, as I have a lot of sessions. Combined with the awkward SSH key management, it's a pain to add new sites. Also support for Pageant or Putty keys would be awesome too.

Again, thank you for your hard work on this software and I'm looking forward to future improvements.

Able to connect only on port 22

I tried some other ports, but I only can connect on my SSH server using port 22 ( of course, I changed the listening port on my SSH server)

Feature Request: split terminal window

Thank you with this amazing tool.
I would like a split terminal option (like is implemented to terminator). Also if possible to also split the ssh sessions.
Again,
thank you for the tool

Bulk Host and Folder Edit

Hello Again,

As per (Paegent Integration #48), this is an enhancement request to include a feature to bulk edit/add/delete hosts and folder.

Thanks

Feature Request: Text Editor Find

One small feature request, more of a nice-to-have:
When opening the find and replace tool in the Text Editor, it would be nice if the Find input field was in focus, so I can start typing what I want to find right away. This is how the find function works in both Chrome and Firefox. Currently, have to click in the Find field at the bottom and then start typing.

Compilation notes?

It would be great to include detailed "for dummies" description on how to compile the source so that people could contribute to this promising project.
For example I can tell that there is an issue with this field:
inpPort = new JSpinner(portModel);
Ant it probably needs some parameters set, but before I start messing up with the code I should at least compile the source myself.
But since I have never done any coding with java, I have no idea how to compile the jar file.
I tried "javac App.java". Got bunch of errors. Not in the mood for digging further :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.