Git Product home page Git Product logo

ssh-shell-spring-boot's People

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

Watchers

 avatar  avatar  avatar  avatar  avatar

ssh-shell-spring-boot's Issues

[Question] How to open ssh connection and immediately execute command

Hi,

did you ever managed to open a ssh connection to your service and immediately execute a command?
In my case, I have a microservice (running in k8s). I want do set up a CronJob, which should do something like
sshpass --p password ssh -o StrictHostKeyChecking=no me@myk8sapp mycommand

Even without this CronJob part if I'm trying to connect manually from my terminal (see code block below) the result is the same.
It should open a new ssh connection and run 'mycommand'. But it's not working for me.

Actually I'm still using version 1.8, and iin this version the result is a continuous exception message and if I'm waiting a bit there we're running OOM

`λ ssh [email protected] -p 8022 "help"
Password authentication
Password:

Please type help to see available commands
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.
java.lang.NullPointerException
Details of the error have been omitted. You can use the stacktrace command to print the full stacktrace.`

This is caused 'deep' into 'jline/InteractiveShellApplicationRunner.java:115', where it tries to get the terminals type (which is null -> NPE):
jline/utils/AttributedCharSequence.java:57

windows = terminal.getType().toLowerCase(Locale.ENGLISH) .startsWith(AbstractWindowsTerminal.TYPE_WINDOWS);

If I use your newer release 2.0, there is no NPE anymore in this case, but the command is not executed anyways. Also its 'strange', that the styling is not applied in this case, so if I connection 'normally' there is tab completion, highliting and styling (e.g. red text if command is misspelled), but if I connection with inital command then this command is not executed, and other features like tab completion and highlighting/styles are not working.

Have you any idea how to solve this?

Thanks,
Jan

Cannot redefine PromptProvider

Create own PromptProvider for example:

@Component
public class UsernamePromptProvider implements PromptProvider {

  @Override
  public AttributedString getPrompt() {
    ...
    return new AttributedString(username + "::>", DEFAULT.foreground(RED));
  }
}

Actual:

Expected:

  • Use UsernamePromptProvider as PromptProvider

Remote code execution

I'm not able to pass command on ssh connect.
ssh root@localhost "help"

Is there a way to get this work?

[Question] Postprocessor return type

Hi all,

first of all, I'd like to thank you for this procject, it seems to be a very useful continuation of springs shell project.
But after using it a few days, I start wondering why the PostProcessor interface does not allow other return types as String. Is there any reason, espacially since the TypePostProcessorResultHandler handle results as Object. DOn't you think, that it would be much easier to allow Objects as return Type or maybe even better something generic like

public interface PostProcessor<TIn, TOut> {

    String getName();

    TOut process(TIn result, List<String> parameters) throws PostProcessorException;
}

With this change it would be a lot easier to chain post processors, since it's currently not possible to do stuff like:
my-command parameter1 parameter2 | postprocessor1 returnAsDate | postprocessor2readDateAndConvert2OtherTimezone

BR,
JaR

[Support Question :) ] How to change default directory for file autocompletion ?

Hello!

I know that this is more generic question but i cant figure out how to change the default directory where the @shellMethod tries to find files and provide autocompletion for files. For security reasons I want to set a default directory where user place their scripts and this should not be in project home directory.

Thank you!

Access to LANG (and other) SSH environment values

I was looking for a way to access the LANG environment variable passed to SshShellCommandFactory via a org.apache.sshd.server.Environment from the SSH client and stored as a private sshEnv field in SshShellRunnable so I could returned localized messages in my app, but wasn't finding a way to do that.

I was working under some time constrains and ended up extending SshShellCommandFactory so I could capture the SSH environment and then return it later, which allows me to get the locale of the client. I wondered if you actually had a way to get the SSH environment easily that I missed?

[Support Request] How to disable CBC mode cipher encryption in Apache Mina SSHD Java library

hello,

I hope you are doing well. I like to ask you if there is way to disable the cbc mode cipher encryption in Apache Mina SSHD Java library used in ssh-shell-spring-boot.

This can be done like this

SshServer sshServer = SshServer.setUpDefaultServer();
ServerBuilder serverBuilder = sshServer.builder();
List ciphers = serverBuilder.ciphers();
ciphers.removeIf(cipher -> cipher.contains("/cbc/"));
sshServer.setServerBuilder(serverBuilder);
sshServer.start();

Is there a way to expose the server used in your library (https://github.com/fonimus/ssh-shell-spring-boot/blob/main/starter/src/main/java/com/github/fonimus/ssh/shell/SshShellConfiguration.java)
and add the above configuration ?

Thank you
Thanasis

Local shell disappearing when adding ssh shell

Description:
The local shell is not usable when adding the ssh shell dependency

How to reproduce:

Have both these dependencies on your project:

<dependency>
    <groupId>com.github.fonimus</groupId>
    <artifactId>ssh-shell-spring-boot-starter</artifactId>
    <version>1.1.6</version>
</dependency>
<dependency>
    <groupId>org.springframework.shell</groupId>
    <artifactId>spring-shell-starter</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

Then try to use the local shell, it will not work, but the remote shell will. If you remove the ssh shell dependency it will still work

[support request]

Hello,

I hope i am finding you happy and well :) I have a problem that you might be able to help me. After I upgraded spring boot parent to 2.7.5 and ssh-shell-spring-boot-starter to 2.0.2 and made some code changes that were needed my app works fine but i get this strange error in my logs :

No command found for '--spring.config.location=C:/Users/barekas/Documents/Repos/ztc_cli_connector/src/cli/target/cliServer-bin/cliServer/config/application-dev.yml'
org.springframework.shell.CommandNotFound: No command found for '--spring.config.location=C:/Users/barekas/Documents/Repos/ztc_cli_connector/src/cli/target/cliServer-bin/cliServer/config/application-dev.yml'
at org.springframework.shell.Shell.evaluate(Shell.java:231)
at com.github.fonimus.ssh.shell.ExtendedShell.evaluate(ExtendedShell.java:112)
at com.github.fonimus.ssh.shell.ExtendedShell.run(ExtendedShell.java:102)
at com.github.fonimus.ssh.shell.ExtendedShell.run(ExtendedShell.java:75)
at org.springframework.shell.jline.NonInteractiveShellRunner.run(NonInteractiveShellRunner.java:104)
at org.springframework.shell.DefaultShellApplicationRunner.run(DefaultShellApplicationRunner.java:65)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at com.cli.CliStarter.main(CliStarter.java:122)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

Also i get some nullpointer exception in my integration tests ...

It seems that it has some problem with my application properties file. Any clue ?
Do you need some info from my application.yml file ?

Thank you,
Thanasis

[Support] How to obtain password value from SshShellHelper object or SshShellEvent

Hello again :)

I am trying to obtain the password from the objects referenced above. I have tried with this code helper.getAuthentication().getCredentials().toString() but it does not fetch something. I call this from the overidden onEvent(SshShellEvent sshShellEvent) of a SessionListener class that implements SshShellListener.
I need to know the password of the succesful logins.
Is there a way to do this ?

Thank you!
Thanasis

Pasting a command in Linux environment after upgrading to latest version does not work properly

Hello,

I hope you are doing well! I have upgraded my project to spring-boot-starter-parent 2.7.5 and ssh-shell-spring-boot-starter to 2.0.2.
I have done changes needed in order to work propely but after testing my app i have found out that pasting commands work as before in windows environments but in linux the app behaves strangely.
If you paste a command (although it works perfectlty if you write it or if you build it through autocompletion) it does not work until you press enter multiple times. Then after some time it executes the command and prints all these enters.

Is this something known ?

Thank you,
Thanasis

SSH tunneling support

Hello again :)

I am trying to perform ssh tunneling to another machine without exiting ssh-shell but with no success :( is there any feature added or an old one that i miss that i can use? if not is this possible with any other way ?

Thank you very much!
Thanasis

Please don't scan for @ShellComponent when ssh.shell.enable=false

When I set to false, I have an issue

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 2 of constructor in com.vp.hotit.sshd.CommentsCommand required a bean of type 'com.github.fonimus.ssh.shell.SshShellHelper' that could not be found.
	- Bean method 'sshShellHelper' not loaded because @ConditionalOnProperty (ssh.shell.enable=true) found different value in property 'ssh.shell.enable'


Action:

Consider revisiting the entries above or defining a bean of type 'com.github.fonimus.ssh.shell.SshShellHelper' in your configuration.

[Help] How to force shutdown session by sessionId?

Hi @fonimus ,
Thank you very much for your advice.
Now I am facing a problems about managing sessions. I have to develop an managing feature for administrator, which can show all active sessions and can force shutdown them by their id.
Could you tell me which class can handle this action?
I am looking forward to hearing from you. Thanks a lot.

Application fail to start when ssh.shell.enable=false, without any @ShellComponent

My settings are:

ssh.shell.enable      = false
ssh.shell.port        = 9018
ssh.shell.user        = root
ssh.shell.password    = abc123
ssh.shell.prompt.text = vpid-shell>

The application fail to start:

***************************
APPLICATION FAILED TO START
***************************

Description:

The dependencies of some of the beans in the application context form a cycle:

┌─────┐
|  history defined in class path resource [org/springframework/shell/jline/JLineShellAutoConfiguration$HistoryConfiguration.class]
↑     ↓
|  org.springframework.shell.jline.JLineShellAutoConfiguration (field private org.springframework.shell.Shell org.springframework.shell.jline.JLineShellAutoConfiguration.shell)
↑     ↓
|  shell
↑     ↓
|  historyCommand defined in class path resource [org/springframework/shell/standard/commands/StandardCommandsAutoConfiguration.class]
└─────┘

History file was shared for all users?

Hi @fonimus ,
Sorry if I bothered you. When I use the history command, I expected all commands which I had typed in this session or this account will be shown. But it's not working like that. If you use another account (ex. user), you can see everything what the admin type before. (All of history was stored in sshShellHistory file.
I don't think it is right when we shared this information for all users.
What do you think about this case?

Release (2.0.1) not working with J8

Hi an issue on sshd core has been introduced with 2.9.0 causing a no such method error for Java 8. Version 2.9.1 should fix the issue.

https://github.com/apache/mina-sshd/blob/master/docs/changes/2.9.1.md

Thank you in advance to fix the dependencies in your project.
Moreove are you aware that new spring shell enables by default an interactive front bocking JVM using spring MVC ? May be you should inform the uses to disable this feature using spring mvc (spring.shell.interactive.enabled=false)?

How to get the username inside a shellMethod

Hello again and sorry for raising another issue :)
I am trying to get the username of the user that is connected inside a shell method.
I am using a custom authentication bean @bean("customAuthManager") similar to the one you used in the complete example.
Question 1) How can i get the username inside a shell method ?
Question 2) New users (manager.createUser(User.withUsername("user").password(encoder.encode("thanasis")).roles("USER").build()); ) can be created only on application startup or they can be created dynamically also later in app lifecycle ?

Thank you very much

SSH interactive tunneling through @shellMethod, input appears duplicate

Hello,

Sorry for raising another issue but it seems that I need your support again :)
I am trying to get remote interactive session to another machine when user gives a specific ShellMethod that performs ssh tunneling.
For the tunneling part I am using this library : https://github.com/Nordstrom/Remote-Session/blob/master/src/main/java/com/nordstrom/remote/SshUtils.java
I need to provide the InputStream and the OutputStream from SSH-Spring-shell library to the remote session library. Everything works well but upon typing all characters appear 2 times but are send to remote 1 time as they should be.

Here is the simple code I using to implement this :

@ShellMethod("CM_with_nordstrom")
public String ssh_to_cm() throws IOException {

    InputStream is = ((SshContext) SshShellCommandFactory.SSH_THREAD_CONTEXT.get()).getTerminal().input();//System.in;
    OutputStream os = ((SshContext) SshShellCommandFactory.SSH_THREAD_CONTEXT.get()).getTerminal().output();//System.out;
    SshUtils.shell("ssh://root:password@ip", is, os);
    return "Ssh tunnel to CM ended";
}

I am setting the Streams correctly ? Any ideas why this duplicaton happens only if I execute this ssh tunneling on top of SSh-Spring-shell library and only if I set the input-output streams as above?

Thank you,
Thanasis

Version 1.5.4 is unusable

Hi,

I create this issue to report an error on the auto configuration part for the tag 1.5.4.

Here the project compilation

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.483 s <<< FAILURE! - in com.github.fonimus.ssh.shell.basic.DemoApplicationWebTest
[ERROR] testApplicationStartup  Time elapsed: 0.037 s  <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scriptCommand' defined in URL [jar:file:/C:/workspace/ssh-shell-spring-boot/starter/target/ssh-shell-spring-boot-starter-1.5.4.jar!/com/github/fonimus/ssh/shell/commands/ScriptCommand.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.github.fonimus.ssh.shell.ExtendedShell' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.github.fonimus.ssh.shell.ExtendedShell' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

It seems that you need to update the autoconfiguration to return an ExtendedShell instead of a ExtendedShell.
Moreover there is a cycle injection between the extendedShell and the ScriptCommand. You may been to interface the run or @lazy the injection inside the scriptCommand ?

The strange things is tyour travis build is ok but me and teammates are unable to use it.

Another issue is the integration, with classpath resources inside a real jar the process is not able to retrieve the data.

Caused by: java.io.FileNotFoundException: class path resource [pub_keys] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/C:/m2repo/xxx/xxx/xxx/foo.jat!/pub_keys
	at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:217) ~[spring-core-5.3.3.jar:5.3.3]

Because, the release was not in maven central, I added yours inside our nexus instance. Please this this with a brand new 1.5.5 :) ?

Please enhance the configuration

Hi it will be great, if possible that the property authorized-public-keys-file becomes a Resource to be able to configure for example authorized keys from a remote hosted file or a package file inside a jar.

BR.

Can I read file from client side?

Hi @fonimus ,
I hope you're doing well. Now I am trying to use the execution via file feature. But it seems we can only use the file on the server host.
I wanna ask you could I use file from client side to use?
Thanks and best regards.

How to exclude unneeded built-in commands?

How to exclude unneeded built-in commands?
For example jvm-env, jvm-properties etc?
I tried to do the following but without luck:

@ComponentScan(excludeFilters = @ComponentScan.Filter(type= FilterType.ASSIGNABLE_TYPE, value = {
        SystemCommand.class,
        StacktraceCommand.class,
        ThreadCommand.class
}))
@SpringBootApplication
public class Application {
    //...
}

[Help] How to detect Ip address and get sessionID?

Hi @fonimus ,

Firstly thank you for this awesome library. It is very beautiful and easy to carry out.

Now I need to detect the ip address of client which request to ssh and the sessionID when connect successful. Please help me the solution.

Thank you!

[Support Request] BuiltInCommand Script can not be disabled

Hello!

I am trying to disable the script built in command. I have successfully managed to disable the help command, but same approach does not seem to work for the other builtInCommands.

I have tried in my main the following :

String[] disabledCommands = {"--spring.shell.command.history.enabled=false"};
String[] fullArgs = StringUtils.concatenateStringArrays(args, disabledCommands);

....

springApplication.run(fullArgs);

The above works for the help command but not for the script.

Do you know maybe why?

Thank you,
Thanasis

IOException and WindowClosedException are thrown and the ssh shell is hanged when the user quit ssh shell

We are trying to use ssh-shell-spring-boot in our project but faced with the following situation - when we exit from the ssh shell (with commands 'quit' or 'exit') then the application throws exception java.io.IOException.

When we start the second ssh shell and quit it, then application throws org.apache.sshd.common.channel.WindowClosedException.

Moreover, when we try to quit the first ssh shell then it hangs and application throws java.io.IOException with message 'Stream Closed'.

In addition, after these exceptions, if we resize the terminal window then application logs warning messages:

StandardEnvironment : Failed (LastErrorException) to signal WINCH to listener=com.github.fonimus.ssh.shell.SshShellCommandFactory$$Lambda$653/1512951254@4930b272: [9] Bad file descriptor

Please see the attached screencast for details.

These exceptions are thrown on Linux environment. On Windows they are not thrown but shell hangs as well.

ssh-shell-sp-parent-demo

Different thread per ssh connection

Hello,

Thank you for this great library :) I would like to request your help on how to configure the basic demo in way, so that different thread handles each ssh connection.

Thank you very much,
Thanasis

[Possible Bug]

Hello again,

And sometimes sporadically i have noticed that this call
long key = sshShellEvent.getSessionId();
returns different value for the active sessions compared to
the ones found here sshShellSessionManager.listSessions()
(When this happens usualy it goes one number forward )
Thank you,
Thanasis

Optionally hide command groups

Hi,

At the moment it looks if I configure a command group to be enable=false (e.g. ssh.shell.commands.system.enable=false) that only impacts the availability. there seems to be no way to hide a command group. I'd like to be able to optionally hide a command group as (for example) the system commands are too low level for some types of users and only serve to confuse them.

(I realise spring shell in general frown on hiding command groups but I think there is a case for it here and that it can be done in such a way that it doesn't impact existing users who are happy to see everything by default)

is there some way to do this I've missed?

I wrote a basic local patch (see below) to do this with ConditionalOnProperty but rather than overloading the meaning of "enable" I've added an explicit "hide" attribute to CommandProperties (defaulting to false) so no existing users should be impacted unless they want to explicitly use this feature.

So for example setting the attribute:
ssh.shell.commands.system.hide=true

means "don't show the system command group"

all feedback welcome or alternative suggestions on how to do this.

Thanks.

ssh_shell_commands_hide2.txt

Application fail to start without "jackson-databind" in depencencies

I use gradle to build project, without spring-boot-starter-web, and without jackson-databind in dependencies, application fail to start with exception:

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_162] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_162] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_162] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_162] ... 116 common frames omitted

IMO, 'jackson-databind' is a required dependency

Circular dependecy when importing the library

Hello,

I tryed to import your lib but it seems to have a circular dependecy into it.
I use spring boot version 2.6.2

***************************
APPLICATION FAILED TO START
***************************

Description:

The dependencies of some of the beans in the application context form a cycle:

   sshShellConfiguration defined in URL [jar:file:/root/.gradle/caches/modules-2/files-2.1/com.github.fonimus/ssh-shell-spring-boot-starter/1.7.0/2b5916b3bbaa08598ead00ba072cb12ec352772d/ssh-shell-spring-boot-starter-1.7.0.jar!/com/github/fonimus/ssh/shell/SshShellConfiguration.class]
      ↓
   sshShellCommandFactory defined in URL [jar:file:/root/.gradle/caches/modules-2/files-2.1/com.github.fonimus/ssh-shell-spring-boot-starter/1.7.0/2b5916b3bbaa08598ead00ba072cb12ec352772d/ssh-shell-spring-boot-starter-1.7.0.jar!/com/github/fonimus/ssh/shell/SshShellCommandFactory.class]
      ↓
   sshShell defined in class path resource [com/github/fonimus/ssh/shell/SshShellAutoConfiguration.class]
┌─────┐
|  org.springframework.shell.result.ResultHandlerConfig
└─────┘

Did there is something to configure and/or to exclude to avoid this ?

Thanks in advance

[Security] Workflow release.yml is using vulnerable action s4u/maven-settings-action

The workflow release.yml is referencing action s4u/maven-settings-action using references v2.4.0. However this reference is missing the commit 5935b2506fdb5912d2dbbd167716193890e2fabd which may contain fix to the some vulnerability.
The vulnerability fix that is missing by actions version could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider to update the reference to the action.

[Bug] task-single throws NPE

On the first invocation the command task-single throws an NPE.

java.lang.NullPointerException
at com.github.fonimus.ssh.shell.commands.TasksCommand.tasksSingle(TasksCommand.java:326)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
at org.springframework.shell.Shell.evaluate(Shell.java:180)
at com.github.fonimus.ssh.shell.ExtendedShell.evaluate(ExtendedShell.java:102)
at com.github.fonimus.ssh.shell.ExtendedShell.run(ExtendedShell.java:92)
at com.github.fonimus.ssh.shell.ExtendedShell.run(ExtendedShell.java:70)
at com.github.fonimus.ssh.shell.SshShellRunnable.run(SshShellRunnable.java:222)
at java.base/java.lang.Thread.run(Thread.java:829)

Reading the code this is due to a field access is done and not the method that initialize the thread executor field.

[Support]

Hello,

I hope you are doing well. I like to request your support on how exactly this helper.getSshSession().getSessionId(); can be used.
It seems that this return a byte array and not a long number.

Thank you,
Thanasis

[Support Request] JavaConnect.java class connects succesfully to ssh app but does not execute commands

Hello,

I hope that you are doing well!
I am trying to create some integration tests for my app that is ssh-shell-spring-boot based.
I used the following code in order to try to execute commands and capture the responses.
https://github.com/fonimus/ssh-shell-spring-boot/blob/master/starter/src/test/java/com/github/fonimus/ssh/shell/JavaConnect.java

Through the JavaConnect.java code I am able to succesfully login to ssh app, I am getting the banner I have configured and the prompt but the command help is not being executed.

Any clue why ?

Thank you!
Thanasis

[Exception] NumberFormatException: null

Hi @fonimus ,
I am using your library to build a Spring Shell and it was very good when I used SSH tool like Putty to connect my Shell.

But when I build another Java app as SSH client, follows this tutorial , I got an Exception "java.lang.NumberFormatException" at class SshShellRunnable.

It seems you want to detect size of client's tool, but when I build Java app, there is no size for that.

Could you give me an advice?

Thanks and best regards.

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.