[Info - 23:52:42.434] Resolving ssh remote authority 'ssh-remote+nimbus@192.168.1.20' (attemp #1) [Trace - 23:52:42.445] Identity keys: /Users/kevinjoyce/.ssh/id_ed25519 ssh-ed25519 SHA256:kGSUUPQRGj8jtw3APByQSNC0y3bZS9YFE7saRanBnhY= [Info - 23:52:42.477] Trying no-auth authentication [Info - 23:52:42.489] Trying publickey authentication: /Users/kevinjoyce/.ssh/id_ed25519 ssh-ed25519 SHA256:kGSUUPQRGj8jtw3APByQSNC0y3bZS9YFE7saRanBnhY= [Trace - 23:52:42.536] Server install command: # Server installation script TMP_DIR="${XDG_RUNTIME_DIR:-"/tmp"}" DISTRO_VERSION="0.13.0" DISTRO_COMMIT="e4dfb063f60fbbb889ccfa43d4d2ba3b118c8830" DISTRO_QUALITY="stable" 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_VERSION-$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_OS= 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 "c5aa9b9c9e55d8977b1ddb32: 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 "c5aa9b9c9e55d8977b1ddb32: end" exit 0 } # Check if platform is supported PLATFORM="$(uname -s)" case $PLATFORM in Darwin) SERVER_OS="darwin" ;; Linux) SERVER_OS="linux" ;; FreeBSD) SERVER_OS="freebsd" ;; DragonFly) SERVER_OS="dragonfly" ;; *) echo "Error platform not supported: $PLATFORM" 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" ;; *) echo "Error architecture not supported: $ARCH" print_install_results_and_exit 1 ;; esac # https://www.freedesktop.org/software/systemd/man/os-release.html 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 SERVER_DOWNLOAD_URL="$(echo "https://cursor.blob.core.windows.net/remote-releases/\${version}-\${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}/$SERVER_OS/g" | sed "s/\${arch}/$SERVER_ARCH/g")" echo "Downloading server from '$SERVER_DOWNLOAD_URL'" # Check if server script is already installed if [[ ! -f $SERVER_SCRIPT ]]; then if [[ "$SERVER_OS" = "dragonfly" ]] || [[ "$SERVER_OS" = "freebsd" ]]; then echo "Error "$SERVER_OS" needs manual installation of remote extension host" print_install_results_and_exit 1 fi pushd $SERVER_DIR > /dev/null # Generate a random filename to avoid collisions RANDOM_FILENAME="vscode-server-f5578243-aedb-4152-b259-db99e426481c.tar.gz" if [[ ! -z $(which wget) ]]; then wget --tries=3 --timeout=10 --continue --no-verbose -O $RANDOM_FILENAME $SERVER_DOWNLOAD_URL elif [[ ! -z $(which curl) ]]; then curl --retry 3 --connect-timeout 10 --location --show-error --silent --output $RANDOM_FILENAME $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 $RANDOM_FILENAME --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 $RANDOM_FILENAME 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)" echo "Server PID: $SERVER_PID" echo "Server script: $SERVER_SCRIPT" SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)" else echo "Server script: $SERVER_SCRIPT" SERVER_RUNNING_PROCESS="$(ps -o pid,args -A | grep $SERVER_SCRIPT | grep -v grep)" fi echo "Server running process: $SERVER_RUNNING_PROCESS" SERVER_IS_RUNNING=$([[ ! -z $SERVER_RUNNING_PROCESS ]] && echo true || echo false) 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="2a4952c1-bc07-48ed-b7c3-48fa711c1058" 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 function try_running() { if [[ -f $SERVER_TOKENFILE ]]; then SERVER_CONNECTION_TOKEN="$(cat $SERVER_TOKENFILE)" else echo "Error server token file not found $SERVER_TOKENFILE" return 1 fi 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 [[ -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 sucessfully" return 1 fi else echo "Error server log file not found $SERVER_LOGFILE" return 1 fi return 0 } # Finish server setup if ! try_running; then echo "Failed once $SERVER_IS_RUNNING" if [[ $SERVER_IS_RUNNING == true ]]; then echo "Retry" 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="9c407f96-362b-4e5a-9ce3-c632f1522ac8" 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 if ! try_running; then echo "Exiting after retry" print_install_results_and_exit 1 fi else echo "Exiting without" print_install_results_and_exit 1 fi fi print_install_results_and_exit 0 [Trace - 23:52:42.826] Server install command stderr: failed: Network is unreachable. [Trace - 23:52:42.826] Server install command stdout: Downloading server from 'https://cursor.blob.core.windows.net/remote-releases/0.13.0-e4dfb063f60fbbb889ccfa43d4d2ba3b118c8830/vscode-reh-linux-x64.tar.gz' Error downloading server from https://cursor.blob.core.windows.net/remote-releases/0.13.0-e4dfb063f60fbbb889ccfa43d4d2ba3b118c8830/vscode-reh-linux-x64.tar.gz c5aa9b9c9e55d8977b1ddb32: start exitCode==1== listeningOn==== connectionToken==== logFile==/home/nimbus/.cursor-server/.e4dfb063f60fbbb889ccfa43d4d2ba3b118c8830.log== osReleaseId==debian== arch==x86_64== platform==Linux== tmpDir==/run/user/1000== c5aa9b9c9e55d8977b1ddb32: end [Error - 23:52:42.826] Error resolving authority Error: Couldn't install vscode server on remote server, install script returned non-zero exit status at t.installCodeServer (/Applications/Cursor.app/Contents/Resources/app/extensions/open-remote-ssh/dist/main.js:1:817365) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /Applications/Cursor.app/Contents/Resources/app/extensions/open-remote-ssh/dist/main.js:1:438341