devpod
devpod copied to clipboard
$SSH_AUTH_SOCK - No such file or directory
What happened?
Local SSH credentials are not available in the remote host.
Also it seems the socket is not linked/mount correctly?
ls -la $SSH_AUTH_SOCK
ls: cannot access '/tmp/auth-agent2010668863/listener.sock': No such file or directory
What did you expect to happen instead?
My devcontainer.json:
{
"name": "Python Development",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"anysphere.pyright",
"redhat.vscode-yaml",
"ms-python.black-formatter"
],
"settings": {
"[python]": {
"editor.formatOnSave": true
}
}
}
},
"postCreateCommand": "sudo apt-get update && sudo apt-get install -y python3 python3-pip git gh"
}
Local Environment:
- DevPod Version: 0.6.4
- Operating System: mac
- ARCH of the OS: ARM64
DevPod Provider:
- Cloud Provider: selfhosted
- Kubernetes Provider: Client Version: v1.31.3 / Kustomize Version: v5.4.2 / Server Version: v1.30.6+rke2r1
Anything else we need to know?
- I am using 1password agent, similarly to https://github.com/loft-sh/devpod/issues/1438
- I am using Cursor as an IDE. (I think this is relevant as when running
devpod sshdirectly from the terminal, the agent DOES work). It fails when using cursor
I think this part of the log (when using cursor) is relevant
[10:14:41] debug Received ping from agent
[10:14:41] debug Start setting up container...
[10:14:41] debug Credentials server started on port 14951...
[10:14:42] debug Incoming client connection at /
[10:14:42] debug Credentials server started...
[10:14:42] debug Patch etc environment & profile...
[10:14:42] debug Run lifecycle hooks commands...
[10:14:42] debug running user env probe with shell "bash", probe "loginInteractiveShell", user "vscode" and command "cat /proc/self/environ"
[10:14:42] debug Done setting up environment
[10:14:42] debug Setup cursor...
[10:14:42] info Install extensions 'ms-python.python,ms-python.vscode-pylance,anysphere.pyright,redhat.vscode-yaml,ms-python.black-formatter' in the background
[10:14:42] debug Start DevPod Container Daemon with Inactivity Timeout 180m
[10:14:42] debug Unset setup system credential helper
[10:14:42] error unset system credential helper exit status 5
[10:14:42] debug Connection to SSH Server closed
[10:14:42] info Error piping stdin: write |1: file already closed
[10:14:42] debug Done setting up container
[10:14:42] debug Done executing ssh server helper command
[10:14:42] debug Connection to SSH Server closed
[10:14:42] debug Done executing ssh server helper command
[10:14:42] debug Done creating devcontainer
[10:14:42] info Run 'ssh poc-pulsar.devpod' to ssh into the devcontainer
[10:14:42] debug No dotfiles repo specified, skipping
[10:14:42] info Starting cursor...
[10:14:43] debug Run vscode command cursor --install-extension ms-vscode-remote.remote-ssh
[10:14:44] debug Error opening cursor via cli: install ssh extension: Installing extensions...
Extension 'ms-vscode-remote.remote-ssh' not found.
I tried to manually install that extension (ms-vscode-remote.remote-ssh) in cursor and I got this error
It seems that cursor by default uses some kind of fork that is already integrated.
This is the remote ssh log in cursor in case this is useful
[Info - 09:32:12.632] Resolving ssh remote authority 'ssh-remote+project-name.devpod' (attemp #1)
[Trace - 09:32:12.696] Identity keys:
[OOB] [SSH] Key1 ssh-ed25519 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
[SSH] [email protected] ssh-ed25519 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
SSH Key - Key2 ssh-ed25519 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
SSH Key - Key3 ssh-rsa SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
[SSH] Key4 ssh-ed25519 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
/Users/username/.ssh/id_ed25519 ssh-ed25519 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
[Trace - 09:32:12.696] Spawning ProxyCommand: /Applications/DevPod.app/Contents/MacOS/devpod-cli ssh --stdio --context default --user vscode project-name
[Info - 09:32:14.751] Trying no-auth authentication
[Trace - 09:32:14.790] Server install command:
# Server installation script
TMP_DIR="${XDG_RUNTIME_DIR:-"/tmp"}"
DISTRO_VERSION="1.93.1"
DISTRO_COMMIT="a846435528b4b760494a836f96f0739889253530"
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 "9fcba8ba48d0303d58bf46d2: 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 "SSH_AUTH_SOCK==$SSH_AUTH_SOCK=="
echo "9fcba8ba48d0303d58bf46d2: 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
# 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
# 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="c35a3fe4-bc85-4363-a924-973580d6b8eb"
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 sucessfully"
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 - 09:32:15.337] Server install command stdout:
Server script already installed in /home/vscode/.cursor-server/bin/a846435528b4b760494a836f96f0739889253530/bin/cursor-server
9fcba8ba48d0303d58bf46d2: start
exitCode==0==
listeningOn==42659==
connectionToken==c35a3fe4-bc85-4363-a924-973580d6b8eb==
logFile==/home/vscode/.cursor-server/.a846435528b4b760494a836f96f0739889253530.log==
osReleaseId==ubuntu==
arch==x86_64==
platform==linux==
tmpDir==/tmp==
SSH_AUTH_SOCK==/tmp/auth-agent1371082708/listener.sock==
9fcba8ba48d0303d58bf46d2: end
[Trace - 09:32:15.340] Creating forwarding server 59158(local) => 59157(socks) => 42659(remote)
Hey @jleni, does this issue still persist with DevPod 0.6.9?
I also have this issue on Fedora Linux 41 with devpod 0.6.10. Inside devpod:
❯ ssh-add -L
Error connecting to agent: No such file or directory
❯ ls $SSH_AUTH_SOCK
ls: cannot access '/tmp/auth-agent3732089745/listener.sock': No such file or directory
UPD: if I directly ssh into container with ssh WORKSPACE.devpod, ssh agent forwarding works.
UPD2: Created separate issue: #1611
This issue is stale because it has been open for 60 days with no activity.
This issue was closed because it has been inactive for 30 days since being marked as stale.