You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2下DDEV中Composer使用多GitHub账户SSH密钥问题

DDEV里Composer不肯用指定SSH密钥?试试这几招

我在WSL2 Ubuntu的~/.ssh目录中配置了第二组SSH密钥及对应Host规则,本地执行git clone git@github-key2:vendor/repoxxx.git能正常拉取代码,但在DDEV环境中用Composer拉取该私有仓库时,始终只使用默认的id_rsa密钥,无法触发指定的key2。以下是解决方法:

1. 修正SSH配置中的密钥路径

DDEV会将主机的~/.ssh目录挂载到容器内的/home/ddev-user/.ssh路径下,因此主机~/.ssh/config里的IdentityFile需要改用容器内的绝对路径,避免容器找不到密钥文件:

Host github-key2
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile /home/ddev-user/.ssh/key2

2. 确保容器内SSH文件权限合规

SSH对文件权限要求严格,必须保证容器内的~/.ssh目录权限为700,config和key2文件权限为600,否则会被拒绝使用。执行以下命令修复权限:

ddev exec chmod 700 ~/.ssh
ddev exec chmod 600 ~/.ssh/config ~/.ssh/key2

3. 先验证容器内SSH连通性

不要直接执行Composer命令,先在容器内测试是否能通过github-key2正常连接GitHub:

ddev exec ssh -T git@github-key2

如果返回类似Hi XXX! You've successfully authenticated...的提示,说明SSH配置已生效,再执行Composer命令即可正常使用指定密钥。

4. 强制Composer使用指定密钥(备选方案)

若上述方法无效,可在Composer命令中直接强制指定密钥路径:

ddev composer req vendor/repoxxx -- --ssh-options="-i /home/ddev-user/.ssh/key2"

内容的提问来源于stack exchange,提问作者Jörg velletti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:05:23