ssh 密钥问题以及如何在 devcontainer.json 中以只读方式挂载?

ssh 密钥问题以及如何在 devcontainer.json 中以只读方式挂载?

我有 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 个权限。

配置后在 devcontainer 中列出我的 ssh 文件夹

相关内容