Problem
Users might find a situation when an SSH based job - either from a JS7 - JITL SSHJob template or from using the ssh command line client - reports the following problem:
Example for JITL SSHJob log output
2023-05-23 11:00:00.009+02:00 [MAIN] [Start] Job=Run_Ide_Check_lists, Agent (url=http://localhost:4445, id=agent_001, name=primaryAgent) 2023-05-23 11:00:00.034+02:00 [STDOUT] [INFO]Job Parameterization: [INFO]Resulting Arguments: [INFO] command=/bin/sleep 120 (source=JOB) [INFO] create_env_vars=true (source=JOB) [INFO] port=22 (source=JOB SSHProviderArguments) [INFO] auth_file=... (source=JOB SSHProviderArguments) [INFO] auth_method=PUBLICKEY (source=JOB SSHProviderArguments) [INFO] host=localhost (source=JOB SSHProviderArguments) [INFO] user=js7 (source=JOB SSHProviderArguments) [INFO][connect]localhost:22 ... [INFO][disconnected]localhost:22 2023-05-23 11:00:00.035+02:00 [MAIN] [End] [Error] returnCode=99, errorState=failed, reason=failed, msg=com.sos.jitl.jobs.ssh.exception.SOSJobSSHException: TransportException: Connection reset java.net.SocketException: Connection reset com.sos.jitl.jobs.ssh.exception.SOSJobSSHException: TransportException: Connection reset java.net.SocketException: Connection reset at com.sos.jitl.jobs.ssh.SSHJob.onOrderProcess(SSHJob.java:167) at com.sos.jitl.jobs.common.ABlockingInternalJob$1.run(ABlockingInternalJob.java:137) at js7.launcher.forjava.internal.BlockingInternalJobAdapter$$anon$1.$anonfun$run$2(BlockingInternalJobAdapter.scala:36)
The problem might occur more or less frequently with the same job running fine and failing from time to time.
Analysis
Log output suggests that the job in fact did connect to the SSH server but that the connection was denied within short time (1ms):
Example for JITL SSHJob log output
2023-05-23 11:00:00.034+02:00 [STDOUT] [INFO]Job Parameterization: ... [INFO][connect]localhost:22 ... [INFO][disconnected]localhost:22 2023-05-23 11:00:00.035+02:00 [MAIN] [End] [Error] returnCode=99, errorState=failed, reason=failed, msg=com.sos.jitl.jobs.ssh.exception.SOSJobSSHException: TransportException: Connection reset java.net.SocketException: Connection reset
This situation does not suggest an error of the job but a limitation of resources with the SSH server.
- SSH servers typically limit the number of incoming connections from the same source host.
- For example this limit defaults to a maximum of 10 connection for OpenSSH.
- Users can increase the limit with the SSH server's configuration.
- For OpenSSH the configuration typically is added to the
/etc/ssh/sshd_config
file by use of the following settings:MaxSessions 100
MaxStartups 100
- For details check the OpenSSH manual.
- For OpenSSH the configuration typically is added to the
Overview
Content Tools