GithubHelp home page GithubHelp logo

devlinx9 / muon-ssh Goto Github PK

View Code? Open in Web Editor NEW

This project forked from subhra74/snowflake

172.0 7.0 26.0 2.7 MB

Graphical SFTP client and terminal emulator (SSH) with helpful utilities

License: GNU General Public License v3.0

Java 99.58% Shell 0.42%
linux ssh ssh-client windows macos terminal sftp sftp-client log-viewer remote-execution remote-shell monitoring-tool monitoring-admin-tool disk-space-analizer devops devops-tools command-line-tool command-snippet ubuntu debian

muon-ssh's Introduction

Muon SSH Terminal/SFTP client ( Formerly Snowflake ) Java CI Github All Releases

Easy and fun way to work with remote servers over SSH.

This project is being renamed as previous name "Snowflake" is confusing since there is already a popular product with the same name.

Muon is a graphical SSH client. It has a enhanced SFTP file browser, SSH terminal emulator, remote resource/process manager, server disk space analyzer, remote text editor, huge remote log viewer and lots of other helpful tools, which makes it easy to work with remote servers. Muon provides functionality similar to web based control panels but, it works over SSH from local computer, hence no installation required on server. It runs on Linux and Windows. Muon has been tested with several Linux and UNIX servers, like Ubuntu server, CentOS, RHEL, OpenSUSE, FreeBSD, OpenBSD, NetBSD and HP-UX.

IMAGE ALT TEXT

Intended audience

The application is targeted mainly towards web/backend developers who often deploy/debug their code on remote servers and not overly fond of complex terminal based commands. It could also be useful for sysadmins as well who manages lots of remote servers manually.

How it works

Download*:

Versions Windows Ubuntu/Mint/Debian MacOS Other OSes Portable
v2.2.0 Exe file DEB installer DMG installer Generic installer Portable JAR (Java 11)
v2.1.0 Exe file DEB installer DMG installer Generic installer Portable JAR (Java 11)
v2.0.0 Exe file DEB installer DMG installer Generic installer Portable JAR (Java 11)
v1.2.1 Exe file DEB installer DMG installer Generic installer Portable JAR (Java 11)

Other Releases

* You must have Java 11 installed minimum

Building from source:

 This is a standard maven project. If you have configured Java and Maven use: 
 mvn clean install to build the project.
 The jar will be created in target directory
 

Features:

  • Simple graphical interface for common file operations
  • Built in text editor with syntax highlighting and support for sudo
  • Simply view and search huge log/text files in a jiffy
  • Fast powerful file and content search, powered by find command
  • Built in terminal and command snippet
  • Fully equiped task manager
  • Built in graphical disk space analyzer
  • Linux specific tools
  • Manage SSH keys easily
  • Network tools
  • MultiLanguage Support

Documentation:

https://github.com/devlinx9/muon-ssh/wiki

muon-ssh's People

Contributors

carloslockward avatar chaitan64arun avatar devlinx9 avatar jonathancosta avatar mbocek avatar palf9 avatar pierrealfonso avatar sodki avatar srsbiz avatar subhra74 avatar tomut0 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

muon-ssh's Issues

[Bug] Master password protect nothing

Hello !

Describe the bug
I created a master password, and I thought the base would be encrypted.
it's a big NO.

To Reproduce

  1. Open the app, go to settings, add a Master Password, close the app
  2. Open the app again, it will ask for a Master Password, just press "Cancel" then "No"...
  3. The app open and asking again a Master Password, but you can write anything in the Session manager without enter a Master Password
  4. you can close the app.

Expected behavior
All the base should be encrypted, and impossible to decrypt (not a single line of the base) without a correct password (imagin someone who change the program and remove any "Master Password" screen)

Config:

  • OS: Ubuntu 22.04.4 LTS
  • Version 2.2.0 github deb package

Can't connect to MiSTer

Describe the bug
I can connect to everything except my MiSTer. It just runs a custom version of Linux, username root. SSH from terminal on the same machine is working fine.

To Reproduce
Steps to reproduce the behaviour:

  1. Create a connection to the MiSTer, root/password
  2. Click on Connect
  3. Banner shows "Session not connected"

Expected behavior
A connection and terminal prompt.

Screenshots
Muon:
image

SSH:
image

Desktop (please complete the following information):

  • OS: Raspberry Pi OS 64-bit Bullseye
  • Muon Version 2.1.0

Additional context
This was previously working on Snowflake.

Mouse pointer issue on Linux

Describe the bug
There is an offset in the mouse pointer position when using the file manager, it does not correspond to the selected item in the contextual menu and results in often using the wrong option, possibly causing data loss. It seems to work fine if the app window is maximized tho.

To Reproduce
Steps to reproduce the behavior:

  1. Go to File browser
  2. Use secondary click (aka right mouse button click) anywhere
  3. Mouse the mouse
  4. The highlighted item does not correspond to the mouse pointer actual position

Expected behavior
The mouse pointer should always match the highlighted item in the menus

Screenshots
Screenshot from 2022-09-22 09-55-38

Desktop (please complete the following information):

  • OS: Garuda/Arch
  • Browser: N/A
  • Version: 2.2.0

Smartphone (please complete the following information):
N/A

Additional context
The bugs does not seem to happen here when Muonssh window is maximized.

Key password should not be required to use other features when saved for the session

Describe the bug
If the user marks "Remember for this session" when unlocking the key for a new connection, it should be automatically used when using other functions like the File browser.

To Reproduce
Steps to reproduce the behavior:

  1. Open a new ssh session using a private key to login
  2. Mark "Remember for this session" and use the password to unlock the key
  3. Open File Browser
  4. The prompt to unlock the key is shown again

Expected behavior
If "Remember for this session" is activated when connecting, then it should be automatically used in any other features instead of requesting for the password for each of them.

S
Screenshot from 2022-09-22 10-09-48
creenshots

Desktop (please complete the following information):

  • OS: Garuda/Arch
  • Browser: N/A
  • Version: 2.2.0

Smartphone (please complete the following information):
N/A

Additional context
N/A

Error while copying

Describe the bug
Not able to copy any file to any folder.

I choose to show sudo dialog but there is no sudo dialog displayed.

To Reproduce
Steps to reproduce the behavior:
Just drag a file and release.

Expected behavior
Should be able to copy files

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: Ubuntu 22.04
  • Version 2.2.0 and 2.1.0

Additional context
https://github.com/subhra74/snowflake is working for me, but not muon.

Cannot open file on local machine through file browser

Describe the bug
In the File Browser tab, when you right click on a file on the local machine side and select Open it doesn't do anything. The file is not opened.

To Reproduce
Steps to reproduce the behavior:

  1. Connect to a server.
  2. Click on the File Browser tab.
  3. Right Click on a file on the local machine side.
  4. Click Open.

Screenshots
Screenshot from 2022-03-03 16-35-17

Settings not saving

Settings (not Sessions) are not saving. Tested on both windows exe and .jar portable on version 2.2.0.

Steps to reproduce the behavior:

  1. Go settings icon next to add
  2. In General
  3. Change "Transfer Mode" or "Conflict Action" settings
  4. Click Save

Settings will temporarily save, but will reset after restart. If changed in same session, it will not reflect these changes after going back to settings after save.

Expected behavior:
Saves during session and after restart.

Desktop

  • OS: Windows 10
  • Java 17

Everything too small on hidpi monitors

Describe the bug
Everything is just too small on the interface, some kind of scaling should be implemented I think
image

There is the "zoom" option, but it seems it doesn't do anything

To Reproduce
Steps to reproduce the behavior:

  1. Own a 2k+ monitor

Properties -> Permissions enhancements for folders and files

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
First I would like to say I'm very impressed with what you have achieved so far, I am enjoying using muonssh very much.
In the Properties dialog for a file or folder I would like options for setting:

  1. Owner
  2. Group
  3. SUID
  4. SGID
  5. Sticky Bit
  6. A check box to activate recursive changing of these attributes.

Thanks for your excellent work.

Describe alternatives you've considered
None

Additional context
N/A

NullPointerExecption in PasswordFinderDialog when private key requires a password

Describe the bug
I'm trying to authenticate with a private key which requires a password. There is no password dialog and I get an red error "Session not connected". The log has this

List of allowed authentications: [publickey]
Trying auth method: publickey
Key provider: com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile@1f16516b
java.lang.NullPointerException
	at muon.app.ssh.PasswordFinderDialog.reqPassword(PasswordFinderDialog.java:37)
	at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.initializeCipher(OpenSSHKeyV1KeyFile.java:143)
	at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.decryptBuffer(OpenSSHKeyV1KeyFile.java:132)
	at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readDecodedKeyPair(OpenSSHKeyV1KeyFile.java:118)
	at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readKeyPair(OpenSSHKeyV1KeyFile.java:85)
	at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getPublic(BaseFileKeyProvider.java:81)
	at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getType(BaseFileKeyProvider.java:87)
	at muon.app.ssh.SshClient2.authPublicKey(SshClient2.java:105)
	at muon.app.ssh.SshClient2.connect(SshClient2.java:243)
	at muon.app.ssh.SshClient2.connect(SshClient2.java:167)
	at muon.app.ui.components.session.terminal.ssh.SshTtyConnector.init(SshTtyConnector.java:54)
	at com.jediterm.terminal.ui.JediTermWidget$EmulatorTask.run(JediTermWidget.java:386)
	at java.base/java.lang.Thread.run(Thread.java:834)
java.io.IOException: Authentication failed
	at muon.app.ssh.SshClient2.connect(SshClient2.java:284)
	at muon.app.ssh.SshClient2.connect(SshClient2.java:167)
	at muon.app.ui.components.session.terminal.ssh.SshTtyConnector.init(SshTtyConnector.java:54)
	at com.jediterm.terminal.ui.JediTermWidget$EmulatorTask.run(JediTermWidget.java:386)
	at java.base/java.lang.Thread.run(Thread.java:834)
Terminal wrapper disconnecting

To Reproduce
Steps to reproduce the behavior:

  1. Create a private key with password
  2. Try to use this key for a new session

Expected behavior
A dialog pops up and is asking for the password for the private key.

Screenshots
na

Desktop (please complete the following information):

  • OS: Ubuntu 20.04
  • Muon SSH 2.1.0

Export decrypted files

Is your feature request related to a problem? Please describe.
I am trying to export a single host to a file, and then by viewing the exported template, create entries for all my hosts, to import to Muon. But the exported file is kind of "encrypted" or "binary" instead of clear text.

Describe the solution you'd like
It would be nice if we had a cleartext XML or JSON export file to work with.

Monitor for background upload/download

When uploading/downloading files is impossible to see if the task is ended.
This is a problem especially for "big" operation (many files and/or big files) as it is impossible to see if the transfer ended

Probably adding in file browser a new section at the bottom (which can be made visible/hided by clicking) that resume the background download/upload status is a possible solution.

[Request] Built-in Code Editor

Please add internal editor like in the original Muon SSH (Snowflake). It's very handy when we only need to perform small changes in code without opening 3rd party software. Also prompt for sudo if operation fail due to permission issue

Cannot create new Top Level Folder

Describe the bug
In the session manager, clicking "New Folder" will create a new folder under the current selected folder. But there is no way to create a new top level folder. The drag and drop functionality also does not allow for moving a folder to the top level.

To Reproduce

  1. Open Session Manager
  2. Click "New Folder"
  3. Attempt to move New Folder above the existing top level folder

Expected behavior
When Clicking "New Folder" and the top level folder is not selected, it should create that folder as a top level folder.
Dragging a folder outside the top level folder should move it outside the top level folder

Desktop:

  • OS: Pop!_OS 21.10
  • Browser [e.g. chrome, safari]
  • Version 2.2.0

Additional context
Dragging the a newly created folder to the bottom of the list causes it to disappear entirely.
This same issue existed in Snowflake as well.

Can't install on Debian 12

When installing the muonssh_2.2.0.deb package on Debian 12, I get an unmet dependency error: openjdk-11-jre

Debian 12 has JRE 17 installed:
openjdk 17.0.11 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Debian-1deb12u1, mixed mode, sharing)

Installing JDK 11 on Debian 12 is troublesome. I have to add another apt source, and even then, the JDK dependencies aren't met, so I can't install it (and I don't want to fill my computer with unstable packages)

Would it be possible to make muon-ssh work on JDK 17?

Thanks.

The cursor is gone

When my network is abnormal, it disconnects. When I connect, the cursor disappears. Can you help me point out the problem

image

Latest .exe and .jar builds fail to open on Windows

Hello! I attempted to download and install the latest release, however both the .exe and the .jar fail to work.

The Issue
The .exe, even when run with administrator privileges, only opens https://java.com/en/download/ in my browser and nothing more. I installed the the latest version of Java and restarted my machine, but this behaviour does not change.

The .jar will not open. It exits with error "Error: A JNI error has occurred, check your installation and try again".

Versions

  • OS: Windows Home Edition 20H2, OSBuild 19042.1415
  • Java: Version 8 Build 311

Cannot remove connection on Windows 10

Environment

OS: Windows 10 Pro x64
Java: 17
Muon SSH: 2.2.0

I started fresh muon ssh with empty connection
There is a connection named "New site" and when I tried to remove it, nothing happened and this error shown on console window

maxKeySize: 2147483647
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
Checking for url
Loading passwords...
Loading passwords... done
treeNodesChanged
Latest release: VersionEntry [tag_name=v2.2.0 value=220]
value changed
treeNodesChanged
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "id" is null
        at muon.app.ui.components.session.NewSessionDlg.selectNode(NewSessionDlg.java:259)
        at muon.app.ui.components.session.NewSessionDlg.actionPerformed(NewSessionDlg.java:342)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
        at java.desktop/java.awt.Component.processEvent(Component.java:6391)
        at java.desktop/java.awt.Container.processEvent(Container.java:2266)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
        at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)```

SSH in port 23 Session not connected

Describe the bug
I have 20 diferents ssh connections ported from snowflake. One of them is a ArchLinux with an ssh in the port 23, it run Gitlab so 22 is reserve for that.

It works in Snowflake and mostly in MuonSSH, the only thing that doesnt work is the terminal. The password is correct, if it was that nothing will work, i have tested it too. If i use SnowFlake or ssh directly it work without any problem

Steps to reproduce the behavior:

  1. Got a server with ssh and archlinux in port 23
  2. Configure Muon to connect to that machine
  3. Open the session and go to terminal
  • OS: Manjaro KDE
 Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The dialog is displayable.
        at java.desktop/java.awt.Dialog.setUndecorated(Dialog.java:1273)
        at muon.app.ssh.GraphicalInputBlocker.lambda$blockInput$0(GraphicalInputBlocker.java:36)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Trying to get allowed authentication methods...
List of allowed authentications: [publickey, password]
Trying auth method: publickey
java.lang.Exception: No suitable key providers
        at muon.app.ssh.SshClient2.authPublicKey(SshClient2.java:115)
        at muon.app.ssh.SshClient2.connect(SshClient2.java:242)
        at muon.app.ssh.SshClient2.connect(SshClient2.java:167)
        at muon.app.ui.components.session.terminal.ssh.SshTtyConnector.init(SshTtyConnector.java:54)
        at com.jediterm.terminal.ui.JediTermWidget$EmulatorTask.run(JediTermWidget.java:383)
        at java.base/java.lang.Thread.run(Thread.java:833)
Trying auth method: password
net.schmizz.sshj.connection.ConnectionException: Request failed
        at net.schmizz.sshj.connection.channel.AbstractChannel.gotResponse(AbstractChannel.java:405)
        at net.schmizz.sshj.connection.channel.AbstractChannel.handle(AbstractChannel.java:192)
        at net.schmizz.sshj.connection.ConnectionImpl.handle(ConnectionImpl.java:130)
        at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:515)
        at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:113)
        at net.schmizz.sshj.transport.Decoder.received(Decoder.java:203)
        at net.schmizz.sshj.transport.Reader.run(Reader.java:60)
Terminal wrapper disconnecting
currentSession: muon.app.ui.components.session.terminal.CustomJediterm[,0,0,1280x668,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@350a78e7,flags=9,maximumSize=,minimumSize=,preferredSize=]

     

RAW Paste Data
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The dialog is displayable.
        at java.desktop/java.awt.Dialog.setUndecorated(Dialog.java:1273)
        at muon.app.ssh.GraphicalInputBlocker.lambda$blockInput$0(GraphicalInputBlocker.java:36)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Trying to get allowed authentication methods...
List of allowed authentications: [publickey, password]
Trying auth method: publickey
java.lang.Exception: No suitable key providers
        at muon.app.ssh.SshClient2.authPublicKey(SshClient2.java:115)
        at muon.app.ssh.SshClient2.connect(SshClient2.java:242)
        at muon.app.ssh.SshClient2.connect(SshClient2.java:167)
        at muon.app.ui.components.session.terminal.ssh.SshTtyConnector.init(SshTtyConnector.java:54)
        at com.jediterm.terminal.ui.JediTermWidget$EmulatorTask.run(JediTermWidget.java:383)
        at java.base/java.lang.Thread.run(Thread.java:833)
Trying auth method: password
net.schmizz.sshj.connection.ConnectionException: Request failed
        at net.schmizz.sshj.connection.channel.AbstractChannel.gotResponse(AbstractChannel.java:405)
        at net.schmizz.sshj.connection.channel.AbstractChannel.handle(AbstractChannel.java:192)
        at net.schmizz.sshj.connection.ConnectionImpl.handle(ConnectionImpl.java:130)
        at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:515)
        at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:113)
        at net.schmizz.sshj.transport.Decoder.received(Decoder.java:203)
        at net.schmizz.sshj.transport.Reader.run(Reader.java:60)
Terminal wrapper disconnecting
currentSession: muon.app.ui.components.session.terminal.CustomJediterm[,0,0,1280x668,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@350a78e7,flags=9,maximumSize=,minimumSize=,preferredSize=]

Save default for FTP layout

Would like a settings option to have FTP default to "Local Machine" on left side, and "Remote" on right. It's a bit like driving on the other side of the road. I'm always concerned I'm going to accidentally overwrite a file because I'm used to going left to right.

Otherwise, have an option to save setting after I've updated this in the FTP view manually.

Cannot download directory with mode overwrite

Describe the bug
Cannot download or upload folder like bitvise ssh client windows app.

To Reproduce

  1. connect to VPS using SSH
  2. set option file exist to overwrite instead of rename
  3. download some folder with multiple files and folders inside

Expected behavior

  • Downloading remote directory to local
  • Uploading local to remote directory

Screenshots
i want to download this folder, right click -> download selected files
image
error

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Not implemented
        at muon.app.ui.components.session.files.ssh.SshMenuHandler.downloadFiles(SshMenuHandler.java:810)
        at muon.app.ui.components.session.files.ssh.SshMenuHandler.lambda$initMenuItems$13(SshMenuHandler.java:337)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1029)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1073)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6621)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
        at java.desktop/java.awt.Component.processEvent(Component.java:6386)
        at java.desktop/java.awt.Container.processEvent(Container.java:2266)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4996)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

image

Desktop (please complete the following information):

  • OS: Ubuntu
  • Browser firefox
  • Version 2.2.0

Some improvements for the user experience

Hi !

I just landed and plan to use Muon that seems really cool and well finished (*instead of Termius).

At first glance there is two points that make me hesitate :

  • Where are located the config files ? Because the app is essentially a .exe. After I found them I immediately looked at the app settings and questioned myself : Is-it possible to customize the location of the config file ?
  • I like terminals but the window terminal that starts with the app is ... disturbing. And I don't see myself having a micro-seconde of thinking to choose the good window to come back between my opened apps. Maybe a little setting to add ?

Also a little "bug", the language selected in settings is English but the language displayed is French, maybe according to my OS setting. And I can help you to improve the translations if you want ? 👍

I don't want to appear as a difficult person, I'm just taking the time to give you my first feeling ^^

UI can not show Chinese font

Describe the bug
UI can not show Chinese font

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'add'
  2. Click on 'import'
  3. the buttons show ⬛

Expected behavior
some where used a chinese font can not be find.

Screenshots

Screenshot_20220425_222705

Desktop (please complete the following information):
OS: Manjaro Linux x86_64
Kernel: 5.17.4-1-MANJARO
DE: Plasma 5.24.4
WM: KWin

locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

install with

yay -S muon-ssh

Additional context
same issue in colors select part

Screenshot_20220425_225106

Implementation of ftp/sftp

Hello, I posted this comment on snowflake but the project seems to be inactive. Digging around in the forks I landed here and would like to know if you would be able to add support for ftp/sftp without ssh. indeed, many hosting services allow sftp access but ssh is disabled which makes Muon unusable. Muon has huge advantages (being portable since it's in java) and I can't find a client that allows sftp/ftp + shh all in one.

Ps: I'm a java developer (but I think my level will be slightly insufficient to succeed in integrating my request reliably) so I can help if necessary but I don't have a lot of time at the moment.

Thank you for taking the time to read, I hope you can accede to my request.

Connect to a different ssh port rather than port 22 behind a firewall

Hi,

I have VPS servers where I am connecting to SSH on a different port rather than port 22. I can't change this unfortunately.
On some places I can't connect to SSH on different ports because of the firewall blocked most of the ports.
How can I connect SSH to another port while it's blocked by the firewall?
I saw a "port forwarding" tab. Probably this is the feature I'm looking for, but how to use it?
Thanks in advance.

Regards,

Coskun

Fractional scaling not working under Linux

Describe the bug
Launching the app while using fractional scaling will launch it at normal scaling making everything tiny

To Reproduce
Steps to reproduce the behavior:

  1. Set your scaling to 150% in you DE Settings (Cinnamon here)
  2. Launch the app and see that it does not use the scaling that's set up

Expected behavior
The app launches under the correct scaling

Screenshots
https://i.dkil.ca/20221109091605.png

Desktop (please complete the following information):

  • OS: Ubuntu 21.10 (Cinnamon 4.8.6)
  • Browser Firefox
  • Version 97.0

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

SFTP upload over file browser not working after reconnect

Describe the bug
If the connection gets interrupted and you get the window asking you if you want to reconnect,
if you do reconnect, the file browser works, but you can't upload anything, nothing happens

To Reproduce
Steps to reproduce the behavior:

  1. Interrupt connection
  2. Click on yes in the reconnect window
  3. Switch to file browser
  4. Try uploading something

Desktop (please complete the following information):

  • OS: Linux
  • Version 2.2.0

Error to open symbolic link

Describe the bug
When trying to access a symbolic link, the error "net.schmizz.sshj.sftp.SFTPException: No such file" is displayed.

To Reproduce
Steps to reproduce the behavior:

  1. navigate to a directory that contains a symbolic link
  2. Click to open symbolic link
  3. See error

Expected behavior
The file would open, or would the directory open

Portable version support

The software is not portable.
It is possible to run it from a usb key but configurations are still saved in user folder

It is necessary to implement a way to configure where to store configurations, it can be done with a parameter at startup or with an .ini file in the same jar directory.
Maybe ini is the best one since it can allow to sets more options for startup

Custom Context Menu Commands

Is your feature request related to a problem? Please describe.
I often need to duplicate files (e.g. to create a configuration backup) or truncate files to empty logs.

Describe the solution you'd like
Adding any command someone wants isn't viable for you, so a better approach would be to have configurable commands in the settings (just like how editors work) and add a context menu Custom Commands where they can be run from.

Doesn't suggest using sudo

When editing a file, root does not prompt the user to use sudo, just the save file popup hangs.

image

Also, this window does not disappear, it interferes a lot.
If you open the file again, the window disappears.

Debian GNU/Linux 11 (bullseye)
GNOME 3.38.5

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.