我试图从 cygwin 推送到我的 git 存储库,但徒劳无功。它曾经有效。我明白了
$ git push
ssh: Could not resolve hostname prooftheory: Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
现在,我的 ssh-config 文件对我来说是可读的
-rwxrwxr--+ 1 user Tartományfelhasználók 230 Dec 10 2015 /cygdrive/c/Users/user/.ssh/config
它包含
Host phd
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
User git
Host prooftheory
HostName bitbucket.org
IdentityFile ~/.ssh/pt_rsa
IdentitiesOnly yes
User git
.git/config 包含以下内容:
[remote "origin"]
url = ssh://git@prooftheory/gergely_/prooftheory.git
fetch = +refs/heads/*:refs/remotes/origin/*
我可以 ping bitbucket.org 。 。我在这里缺少什么?
编辑
说 cygwin 可能会从其他地方获取 ssh 配置信息,但不清楚如何配置 git 使用 ~/.ssh/config。我将该配置复制到 ~/.ssh/ssh_config 但这没有帮助。不幸的是, ssh -vvv 不会写入它读取的配置文件。
答案1
首先我必须创建一个符号链接
/home/user
到
/cygdrive/c/Users/user
和以下
https://serverfault.com/questions/253313/ssh-hostname-returns-bad-owner-or-permissions-on-ssh-config
做一个
chmod 600 ~/.ssh/config
它成功了。
我仍然得到
key_load_public: invalid format
错误,但尽管如此,它现在可以工作了。
答案2
您可以将 gitGIT_SSH
变量与类似的东西一起使用GIT_SSH="ssh -F ~/.ssh/config"
(并根据您的 Windows 设置调整路径)。