【问题标题】:Unable to update submodule from Github within WSL无法从 WSL 中的 Github 更新子模块
【发布时间】:2021-06-17 10:19:48
【问题描述】:

我在更新用于我的 vim 配置的子模块时遇到了问题,尽管从 GitHub 的角度来看其他一切都正常工作。

我已经多次关注 github 的“生成 SSH 密钥”以及“将 SSH 密钥添加到 github”一文,并多次重新添加了我的 SSH 密钥。我已经尝试过 ed 协议以及 RSA,但似乎都不起作用。

奇怪的是,所有其他关于我是否已连接的测试都有效。我可以毫无问题地 git 克隆原始存储库,甚至是使用 ssh 链接的私有存储库。

我也可以正常使用ssh -T git@github.com 命令,它表示我已使用正确的用户帐户和所有内容进行了身份验证。

ssh -T git@github.com
Hi ca-mantis-shrimp! You've successfully authenticated, but GitHub does not provide shell access.

从字面上看,唯一被破坏的是递归更新子模块,这让我发疯,我正在阅读的所有内容都说我只需要替换公钥,但我真的不认为这是问题所在,或者我错过了某事

是的,我正在添加 ssh 密钥并确保代理在后台运行。

我明白了

/usr/lib/git-core/git-submodule: 88: gettext: Permission denied
/usr/lib/git-core/git-submodule: 1: envsubst: Permission denied
/usr/lib/git-core/git-submodule: 88: envsubst: Permission denied
/usr/lib/git-core/git-submodule: 1: envsubst: Permission denied
/usr/lib/git-core/git-submodule: 88: gettext: Permission denied
/usr/lib/git-core/git-submodule: 88: envsubst: Permission denied
...

尝试更新时

我已经删除了repo并尝试将其克隆回来,我真的想不出这里可能有什么问题。

解决方案: 就我而言,问题是我需要以超级用户身份安装 gettext 软件包,它根本不在分区中。

感谢@VonC 的详细建议!

【问题讨论】:

  • 好收获。我已编辑我的答案以反映该解决方案。

标签: git github ssh


【解决方案1】:

首先,使用不带密码的 ssh 私钥尝试相同的测试,再次,仅用于测试。
这样,您就不必在检查“权限被拒绝”问题的根本原因时处理 ssh-agent。

再次检查 ssh -Tv -i /my/private/key git@github.com 是否有效(显示欢迎消息)

其次,设置GIT_SHS_COMMAND环境变量显示调试信息:

export GIT_SSH_COMMAND='ssh -Tv -i /my/private/key'

this question 一样,请仔细检查您的权利:

  • /usr/lib/git-core/ 中的 Git 安装(例如:以 root 身份安装,使用 754 而不是 755 意味着您无法执行它们)
  • /usr/bingettextenvsubst 所在的位置),检查脚本是否有权执行它们。
  • 正在更新的本地存储库
  • 进程启动vim

OP 确认gettext 甚至不在/usr/bin

sudo apt update && sudo apt upgrade -y
# Install Tools
sudo apt-get install gettext

【讨论】:

  • 我检查了 /usr/lib/git-core ,似乎相关文件的权限很好 ``` -rwxr-xr-x 1 root root 20561 Feb 16 23:55 git-submodule lrwxrwxrwx 1 root root 3 Feb 16 23:55 git-submodule--helper -> git ```我检查了 /usr/bin 文件夹,它既没有程序 gettext 也没有 envsubst vim 不应该是问题因为我可以很好地运行它并且启动vim本身没有问题,只需更新我用于包的子模块并且我的本地存储库能够更新和推送,只是没有一个子模块可以从外部源更新。
  • @DarrionBurgess 考虑到我看到了gettext: Permission denied,我宁愿检查系统命令或防病毒软件的一些问题,如superuser.com/q/1566799/141
  • O,是的,我尝试了你的 top 命令,但我仍然可以使用给定的 SSH 命令进入 github
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
  • 2018-01-26
  • 2017-03-06
相关资源
最近更新 更多