首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与使用Docker的WSL2后端运行的VS代码开发容器共享SSH密钥

与使用Docker的WSL2后端运行的VS代码开发容器共享SSH密钥
EN

Stack Overflow用户
提问于 2021-12-02 21:16:17
回答 3查看 1.5K关注 0票数 3

我在读这些关于与dev容器共享SSH密钥的文档,但我不能让它工作。

我的设置如下:

  • 使用WSL2后端的带有DockerDesktop4.2.0的Windows 10
  • 运行Ubuntu20.04的WSL2发行版
  • 在WSL2中,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)")只启动一个不知道我的私钥的。

我遗漏了什么?

EN

回答 3

Stack Overflow用户

发布于 2022-04-02 10:04:29

我也有相当多的麻烦,使这个工作。以下步骤可能有助于排除故障:

  1. 检查您的主机上是否运行了ssh-agent,并添加了密钥 在Windows上运行ssh-agent -l并期望看到您的密钥的名称
  2. 检查VSCode是否转发套接字 在启动日志中搜索ssh-agent。我收到留言了 ssh-代理:容器(/tmp/vscode-ssh-auth-a56c4b60c939c778f2998dee2a6bbe12285db2ad.sock)中的SSH_AUTH_SOCK转发到本地主机(\.pipe\openssh)。

因此,VSCode似乎在这里直接转发Windows代理(而不是运行在WSL中的SSH代理)。

票数 0
EN

Stack Overflow用户

发布于 2022-09-15 08:54:50

我基本上也有同样的问题。使用WSL2和我的VSCode设备运行Windows11不会显示任何ssh键(在容器中运行ssh-add -l会显示一个空列表),尽管在我的主机上配置了Git并使用可用的ssh键。

对我来说,我的机器上有三个独立的ssh-agent实例:

  • WSL2
  • 吉特巴什
  • Windows主机--这是VSCode转发给dev容器的一个

我现有的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立即检测到。

密钥管理

票数 0
EN

Stack Overflow用户

发布于 2022-11-16 15:36:54

我尝试了许多事情,但都没有成功。最后,在创建devcontainer之后,我记录下容器名称,并使用docker命令在容器中复制id_rsa和id_rsa.pub密钥。

代码语言:javascript
复制
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。这就是唯一的警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70206554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档