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
相关产品推荐
相关产品推荐

