Hey! tell us all the things👋

مشكلة Gitlab الغريبة SSH التي أبلغ عنها عدنان إبراهيمي
Gitlab Strange SSH Problem Reported by Adnan Ebrahimi, مشكلة Gitlab الغريبة SSH التي أبلغ عنها عدنان إبراهيمي

Problem

I had an unusual issue on my pipeline a few days ago, and I observed a bizarre error log that didn't mean anything to me:

Connection closed by UNKNOWN port 65535

I discovered that the pipeline has stuck at Kex Algorithm:

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 96
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: chan_shutdown_write: channel 0: (i0 o1 sock -1 wfd 5 efd -1 [closed])
debug2: channel 0: output drain -> closed
debug1: channel 0: FORCE input drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug3: send packet: type 96
debug2: channel 0: input drain -> closed
Connection closed by UNKNOWN port 65535

Solution

I found the solution after several headache-inducing searches🎉.

After adding KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521 below Host * on both Jumpbox and Destination Server, I ran the pipeline again but guess what? it failed!

When I saw the connection time out! I realized that the same thing had occurred in the pipeline, and the Kex Algorithm needs to be configured on both servers and the pipeline.

I edited my .gitlab-ci.yml file and added the line - sed -i -e "s/Host \*/&\nKexAlgorithms curve25519-sha256,ecdh-sha2-nistp521/g" before anything with SSH:

before_script:
    - apk add openssh-client rsync
    - sed -i -e "s/Host \*/&\nKexAlgorithms curve25519-sha256,ecdh-sha2-nistp521/g"  /etc/ssh/ssh_config

with sed -i -e "s/Host \*/&\nKexAlgorithms curve25519-sha256,ecdh-sha2-nistp521/g" /etc/ssh/ssh_config I add Kex Algorithms to the ssh_config file and tried again.

This time, the pipeline functioned well, and our application was successfully deployed to the destination server.

You can see the detailed article in my blog on Hashnode:

SSH UNKNOWN port 65535 Issue on Gitlab Pipeline
SSH Stuck at SSH2_MSG_KEX_ECDH_REPLYand show Connection closed by UNKNOWN port 65535 error on pipeline