微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 VSCode 远程容器读取 ssh 配置文件?

如何解决如何让 VSCode 远程容器读取 ssh 配置文件?

我有一个相当大的 .ssh/config 文件,其中包含以下条目:

Host gitlab.com
    Preferredauthentications publickey
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/gitlab.pub
    IdentitiesOnly yes

我还使用 SSH 代理来提供私钥。现在,当我在 VSCode 中使用此设置时,容器似乎不知道配置文件。我遇到了如下错误

Received disconnect from 172.65.251.78 port 22:2: Too many authentication failures
disconnected from 172.65.251.78 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

通过在容器中运行 GIT_SSH_COMMAND="ssh -v" git fetch,我发现尝试了所有密钥,并且在尝试 5 次后 Gitlab SSH 服务器不想继续。所以 ssh-agent 被转发到容器,而不是配置文件。在容器之外,一切正常。

有没有人有解决方案?

我的环境:

Version: 1.53.0
Commit: 8490d3dde47c57ba65ec40dd192d014fd2113496
Date: 2021-02-03T15:56:04.185Z
Electron: 11.2.1
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: 8.7.220.31-electron.0
OS: Linux x64 5.10.13-arch1-2

Remote-Containers: v0.158.0

解决方法

 IdentityFile ~/.ssh/gitlab.pub

这似乎是错误的:通常,IdentityFile 引用私有 SSH 密钥,而不是公共密钥:

IdentityFile ~/.ssh/gitlab

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。