features: getting ssh-add -l : error fetching identities: communication with agent failed (from within devcontainer with common-utils/docker-from-docker)
Hi,
I created a devcontainer using
{
"dockerComposeFile": "docker-compose.yml",
"service": "krypton-c-env",
"workspaceFolder": "/work/libaos",
"shutdownAction": "stopCompose",
"remoteUser": "aos-dev",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"username": "aos-dev",
"uid": "10000",
"gid": "10001",
"installZsh": true,
"installOhMyZsh": true,
"upgradePackages": true,
"nonFreePackages": false
},
"ghcr.io/devcontainers/features/docker-from-docker:1": {
"version": "latest",
"username": "aos-dev"
}
},
"postCreateCommand": "conan profile detect",
"extensions": [
"atlassian.atlascode", "ms-vscode.cpptools", "numaru.vscode-ceedling-test-adapter",
"twxs.cmake", "ms-azuretools.vscode-docker", "ms-vscode.cpptools-extension-pack",
"ban.troff", "SonkengMaldini.conanlight", "afri-bit.vsconan",
"ryanluker.vscode-coverage-gutters"
]
}
I connect remotely to my linux vm within VSCode and ssh-add -l works, then I go within the devcontainer and ssh-add -l now report the error, causing all my git operation with the remote to fail.
I do see an output for “echo $SSH_AUTH_SOCK” on both ssh remote and within the devcontainer, but likely I am missing a mount of a particular socket as to enable ssh-agent communication between host and the devcontainer environment.
I am unclear if this is a mistake of mine, or something broken by common-utils.
About this issue
- Original URL
- State: open
- Created 2 years ago
- Comments: 15 (5 by maintainers)
I read an issue about gpg-agent forwarding not working. In that issue there was discussion that the agent used was the incorrect one. Basically, when using remote + devcontainer the “local” or the “remote” agent can be use by the container to connect to.
In my case, the keys are at my “remote” agent. My windows “ssh-agent” was not even running.
I then started my windows ssh-agent and the output of the ssh-add -l changed to “The agent has no identities”.
So I think the issue I am having here is that the devcontainer internal ssh-agent forward system is connecting to the local Windows vscode ssh-agent when in my case I would like it to connect to my remote linux ssh-agent which has the SSH key…
For now I think I could just add the key in my windows and it will work, but I would like to have some control on which agent, local or remote the ssh-agent within my devcontainer connects to in that scenario.
https://github.com/microsoft/vscode-remote-release/issues/7814
it is my understanding that the feature docker-from-docker adds the bind and entrypoint statements, as such I do not need to.
I did the following modification based on your comments:
devcontainer.json:
docker-compose.yml
Dockerfile
Hi,
I have renamed the options in my devcontainer.json file but I still, see the same problem. If I create a file, I do see the correct uid/gid assigned to it.
Yet thanks for this info, I had failed to notice the change in the option keyword.