SSH fail each time I update the Cursor

:lady_beetle: description of the bug
Each time I update the cursor, the remote ssh would fail. Despite I can develop the project through cursor in the last version, or I can use command line ssh to connect to the server, I can not use cursor composer to connect to the remote ssh.

SSH fails even after I try to reinstall the cursor, remote ssh, and deleting the .cursor_vscode in my remote server.

Error Report:

“”"
[Info - 05:08:54.712] Resolving ssh remote authority ‘ssh-remote+192.168.0.185’ (attemp #1)
[Error - 05:08:54.732] Couldn’t get identities from OpenSSH agent
Error: Failed to connect to agent
at Socket.n (c:\Users\SkyRa.cursor\extensions\jeanp413.open-remote-ssh-0.0.48-universal\out\extension.js:1:126951)
at Socket.emit (node:events:518:28)
at Socket.emit (node:domain:489:12)
at emitErrorNT (node:internal/streams/destroy:169:8)
at emitErrorCloseNT (node:internal/streams/destroy:128:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
[Trace - 05:08:54.732] Identity keys:
C:\Users\SkyRa/.ssh/id_rsa ssh-rsa SHA256:vGBlcw6C24Fsg4HXasG4EezwjAh6hrlIBuSRKiixTqY=
[Info - 05:08:54.790] Trying no-auth authentication
[Info - 05:08:54.841] Trying publickey authentication: C:\Users\SkyRa/.ssh/id_rsa ssh-rsa SHA256:vGBlcw6C24Fsg4HXasG4EezwjAh6hrlIBuSRKiixTqY=
[Trace - 05:08:54.956] Server install command:

Server installation script

TMP_DIR=“${XDG_RUNTIME_DIR:-”/tmp"}"

DISTRO_VERSION=“1.96.2”
DISTRO_COMMIT=“82ef0f61c01d079d1b7e5ab04d88499d5af500e0”
DISTRO_QUALITY=“stable”
DISTRO_VSCODIUM_RELEASE=“”

SERVER_APP_NAME=“cursor-server”
SERVER_INITIAL_EXTENSIONS=“”
SERVER_LISTEN_FLAG=“–port=0”
SERVER_DATA_DIR=“$HOME/.cursor-server”
SERVER_DIR=“$SERVER_DATA_DIR/bin/$DISTRO_COMMIT”
SERVER_SCRIPT=“$SERVER_DIR/bin/$SERVER_APP_NAME”
SERVER_LOGFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.log”
SERVER_PIDFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.pid”
SERVER_TOKENFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.token”
SERVER_ARCH=
SERVER_CONNECTION_TOKEN=
SERVER_DOWNLOAD_URL=

LISTENING_ON=
OS_RELEASE_ID=
ARCH=
PLATFORM=

Mimic output from logs of remote-ssh extension

print_install_results_and_exit() {
echo “7614f5a51aaf68e209fda4be: start”
echo “exitCode==$1==”
echo “listeningOn==$LISTENING_ON==”
echo “connectionToken==$SERVER_CONNECTION_TOKEN==”
echo “logFile==$SERVER_LOGFILE==”
echo “osReleaseId==$OS_RELEASE_ID==”
echo “arch==$ARCH==”
echo “platform==$PLATFORM==”
echo “tmpDir==$TMP_DIR==”

echo "7614f5a51aaf68e209fda4be: end"
exit 0

}

Check if platform is supported

KERNEL=“$(uname -s)”
case $KERNEL in
Darwin)
PLATFORM=“darwin”
;;
Linux)
PLATFORM=“linux”
;;
FreeBSD)
PLATFORM=“freebsd”
;;
DragonFly)
PLATFORM=“dragonfly”
;;
*)
echo “Error platform not supported: $KERNEL”
print_install_results_and_exit 1
;;
esac

Check machine architecture

ARCH=“$(uname -m)”
case $ARCH in
x86_64 | amd64)
SERVER_ARCH=“x64”
;;
armv7l | armv8l)
SERVER_ARCH=“armhf”
;;
arm64 | aarch64)
SERVER_ARCH=“arm64”
;;
ppc64le)
SERVER_ARCH=“ppc64le”
;;
riscv64)
SERVER_ARCH=“riscv64”
;;
loongarch64)
SERVER_ARCH=“loong64”
;;
s390x)
SERVER_ARCH=“s390x”
;;
*)
echo “Error architecture not supported: $ARCH”
print_install_results_and_exit 1
;;
esac

os-release

OS_RELEASE_ID=“$(grep -i ‘^ID=’ /etc/os-release 2>/dev/null | sed ‘s/^ID=//gi’ | sed 's/”//g’)"
if [[ -z $OS_RELEASE_ID ]]; then
OS_RELEASE_ID=“$(grep -i ‘^ID=’ /usr/lib/os-release 2>/dev/null | sed ‘s/^ID=//gi’ | sed 's/”//g’)"
if [[ -z $OS_RELEASE_ID ]]; then
OS_RELEASE_ID=“unknown”
fi
fi

Create installation folder

if [[ ! -d $SERVER_DIR ]]; then
mkdir -p $SERVER_DIR
if (( $? > 0 )); then
echo “Error creating server install directory”
print_install_results_and_exit 1
fi
fi

adjust platform for vscodium download, if needed

if [[ $OS_RELEASE_ID = alpine ]]; then
PLATFORM=$OS_RELEASE_ID
fi

SERVER_DOWNLOAD_URL=“$(echo “https://cursor.blob.core.windows.net/remote-releases/\${commit}/vscode-reh-\${os}-\${arch}.tar.gz” | sed “s/${quality}/$DISTRO_QUALITY/g” | sed “s/${version}/$DISTRO_VERSION/g” | sed “s/${commit}/$DISTRO_COMMIT/g” | sed “s/${os}/$PLATFORM/g” | sed “s/${arch}/$SERVER_ARCH/g” | sed “s/${release}/$DISTRO_VSCODIUM_RELEASE/g”)”

Check if server script is already installed

if [[ ! -f $SERVER_SCRIPT ]]; then
case “$PLATFORM” in
darwin | linux | alpine )
;;
*)
echo “Error ‘$PLATFORM’ needs manual installation of remote extension host”
print_install_results_and_exit 1
;;
esac

pushd $SERVER_DIR > /dev/null

if [[ ! -z $(which wget) ]]; then
    wget --tries=3 --timeout=10 --continue --no-verbose -O vscode-server.tar.gz $SERVER_DOWNLOAD_URL
elif [[ ! -z $(which curl) ]]; then
    curl --retry 3 --connect-timeout 10 --location --show-error --silent --output vscode-server.tar.gz $SERVER_DOWNLOAD_URL
else
    echo "Error no tool to download server binary"
    print_install_results_and_exit 1
fi

if (( $? > 0 )); then
    echo "Error downloading server from $SERVER_DOWNLOAD_URL"
    print_install_results_and_exit 1
fi

tar -xf vscode-server.tar.gz --strip-components 1
if (( $? > 0 )); then
    echo "Error while extracting server contents"
    print_install_results_and_exit 1
fi

if [[ ! -f $SERVER_SCRIPT ]]; then
    echo "Error server contents are corrupted"
    print_install_results_and_exit 1
fi

rm -f vscode-server.tar.gz

popd > /dev/null

else
echo “Server script already installed in $SERVER_SCRIPT”
fi

Try to find if server is already running

if [[ -f $SERVER_PIDFILE ]]; then
SERVER_PID=“$(cat $SERVER_PIDFILE)”
SERVER_RUNNING_PROCESS=“$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)”
else
SERVER_RUNNING_PROCESS=“$(ps -o pid,args -A | grep $SERVER_SCRIPT | grep -v grep)”
fi

if [[ -z $SERVER_RUNNING_PROCESS ]]; then
if [[ -f $SERVER_LOGFILE ]]; then
rm $SERVER_LOGFILE
fi
if [[ -f $SERVER_TOKENFILE ]]; then
rm $SERVER_TOKENFILE
fi

touch $SERVER_TOKENFILE
chmod 600 $SERVER_TOKENFILE
SERVER_CONNECTION_TOKEN="5d7328b2-8f9e-448f-a21c-1f5333b057a3"
echo $SERVER_CONNECTION_TOKEN > $SERVER_TOKENFILE

$SERVER_SCRIPT --start-server --host=127.0.0.1 $SERVER_LISTEN_FLAG $SERVER_INITIAL_EXTENSIONS --connection-token-file $SERVER_TOKENFILE --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms &> $SERVER_LOGFILE &
echo $! > $SERVER_PIDFILE

else
echo “Server script is already running $SERVER_SCRIPT”
fi

if [[ -f $SERVER_TOKENFILE ]]; then
SERVER_CONNECTION_TOKEN=“$(cat $SERVER_TOKENFILE)”
else
echo “Error server token file not found $SERVER_TOKENFILE”
print_install_results_and_exit 1
fi

if [[ -f $SERVER_LOGFILE ]]; then
for i in {1..5}; do
LISTENING_ON=“$(cat $SERVER_LOGFILE | grep -E ‘Extension host agent listening on .+’ | sed ‘s/Extension host agent listening on //’)”
if [[ -n $LISTENING_ON ]]; then
break
fi
sleep 0.5
done

if [[ -z $LISTENING_ON ]]; then
    echo "Error server did not start successfully"
    print_install_results_and_exit 1
fi

else
echo “Error server log file not found $SERVER_LOGFILE”
print_install_results_and_exit 1
fi

Finish server setup

print_install_results_and_exit 0

[Trace - 05:08:56.565] Server install command stderr:
tar: Skipping to next header

gzip: stdin: invalid compressed data–format violated
tar: Child returned status 1
tar: Error is not recoverable: exiting now

[Trace - 05:08:56.565] Server install command stdout:
Error while extracting server contents
7614f5a51aaf68e209fda4be: start
exitCode==1==
listeningOn====
connectionToken====
logFile==/home/yangyi/.cursor-server/.82ef0f61c01d079d1b7e5ab04d88499d5af500e0.log==
osReleaseId==ubuntu==
arch==x86_64==
platform==linux==
tmpDir==/run/user/1014==
7614f5a51aaf68e209fda4be: end

[Error - 05:08:56.565] Error resolving authority
Error: Couldn’t install vscode server on remote server, install script returned non-zero exit status
at t.installCodeServer (c:\Users\SkyRa.cursor\extensions\jeanp413.open-remote-ssh-0.0.48-universal\out\extension.js:1:442308)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async c:\Users\SkyRa.cursor\extensions\jeanp413.open-remote-ssh-0.0.48-universal\out\extension.js:1:404904
“”"

cursor version: 0.47.8
vscode version: 1.96.2