我在读这些关于与dev容器共享SSH密钥的文档,但我不能让它工作。
我的设置如下:
ssh-agent正在运行,并且知道我的密钥:
添加SHA256:wDqVYQshQBCG/Sri/bsgjEaUFboQDUO/9FJqhFMncdk /λ/taschan/.ssh/id_RSA (RSA)医生说
如果其中一个正在运行,扩展将自动转发本地SSH代理。
但是,如果我在dev容器中执行ssh-add -l,它将使用Could not open a connection to your authentication agent.进行响应;当然,启动一个(用eval "$(ssh-agent -s)")只启动一个不知道我的私钥的。
我遗漏了什么?
发布于 2022-04-02 10:04:29
我也有相当多的麻烦,使这个工作。以下步骤可能有助于排除故障:
ssh-agent,并添加了密钥
在Windows上运行ssh-agent -l并期望看到您的密钥的名称ssh-agent。我收到留言了
ssh-代理:容器(/tmp/vscode-ssh-auth-a56c4b60c939c778f2998dee2a6bbe12285db2ad.sock)中的SSH_AUTH_SOCK转发到本地主机(\.pipe\openssh)。因此,VSCode似乎在这里直接转发Windows代理(而不是运行在WSL中的SSH代理)。
发布于 2022-09-15 08:54:50
我基本上也有同样的问题。使用WSL2和我的VSCode设备运行Windows11不会显示任何ssh键(在容器中运行ssh-add -l会显示一个空列表),尽管在我的主机上配置了Git并使用可用的ssh键。
对我来说,我的机器上有三个独立的ssh-agent实例:
我现有的ssh密钥是在Git (按照吉特布的指示)中设置的,因此运行ssh-add -l时只会在Git终端中显示我的ssh密钥,而不是其他地方。
但是,正如在前面的答案中解释的那样,深入了解VSCode容器的启动日志显示,它只转发主机的ssh-agent,而不查看WSL2或Git。
解决方案:我建议在下面的Microsoft页面后面运行。您需要在Windows中启用一个“可选特性”,然后在PowerShell (作为管理员)中运行几个命令来激活ssh-agent服务。这样设置之后,ssh-agent/ssh-add命令也将从常规的CMD终端上运行。您可以使用这些命令和通常的keygen命令等在主机上生成和添加新的密钥(我刚才ssh-add使用了Git生成的相同密钥)。添加的密钥应该由容器内的ssh-add -l立即检测到。
发布于 2022-11-16 15:36:54
我尝试了许多事情,但都没有成功。最后,在创建devcontainer之后,我记录下容器名称,并使用docker命令在容器中复制id_rsa和id_rsa.pub密钥。
syntax:
docker cp <sourcefile> container_id:/dir
#Copy both private and public key:
docker cp /root/.ssh/id_ed25519 eloquent_ritchie:/root/.ssh/
docker cp /root/.ssh/id_ed25519.pub eloquent_ritchie:/root/.ssh/
# change the permission of private key so that you can do git operations
docker exec eloquent_ritchie chmod 600 /root/.ssh/id_ed25519
Note: eloquent_ritchie is sample container name. Your container name will differ. Use your container name然后我就能在do里面做Git操作了。注意:如果您再次重新构建容器,则需要再次将文件复制到devcontainer。这就是唯一的警告。
https://stackoverflow.com/questions/70206554
复制相似问题