我有 Windows 作为主机,与 devcontainer 一起工作无 wsl,使用自定义名称创建 ssh 密钥,比如说id_github
。并设法设置 ssh-agent 自动运行,并且可以在主机上使用 git fetch 和 ssh 密钥,没有任何问题,
这是我的~/.ssh/config
Host github.com
IdentityFile "~/.ssh/id_github"
ForwardAgent yes
但不知何故我的 devcontainer 没有自动转发 ssh(医生说会的)
那就是第一个问题,我还能让它自动转发 ssh-agent 吗?
否则,这是我的第二个问题:我正在寻找一种解决方法,我的选择是将.ssh
目录挂载到容器中,我没有使用docker-compose,所以在我的devcontainer.json
,我使用mounts
配置,但想将其挂载为只读,我找不到任何例子,
我试过了:
"mounts": [
"source=~/.ssh,target=/home/vscode/.ssh,readonly,type=bind"
]
但它不是只读的,ls -lha ~/.ssh
显示:
drwxr-sr-x 1 vscode vscode 4.0K Oct 15 10:13 ..
-rwxr-xr-x 1 vscode vscode 124 Oct 15 09:47 config
-rwxr-xr-x 1 vscode vscode 133 Oct 15 07:58 id_github
-rwxr-xr-x 1 vscode vscode 133 Oct 15 07:58 id_github.pub
-rwxr-xr-x 1 vscode vscode 828 Oct 14 10:18 known_hosts
-rwxr-xr-x 1 vscode vscode 92 Oct 14 10:16 known_hosts.old
当我调用它时
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/vscode/.ssh/id_github' are too open.
第三个问题
我尝试将命令配置到devcontainer.json
文件中,例如:
"postCreateCommand": {
"chmod-ssh": "sudo chmod -R 600 ~/.ssh/"
}
奇怪的是,它没有影响,虽然日志显示它已被执行
你们能帮助我吗?谢谢
搜索所有文档,仍然没有运气,
答案1
我建议您使用此行来安装。
"mounts": [
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/vscode/.ssh,readonly,type=bind"
]
另外,我认为权限应该由主机而不是 devcontainer 管理。我使用了此挂载选项,但它在 devcontainer 上只给了我 600 个权限。