Git 远程推送不工作,SSH 密钥问题
Git remote push not working, SSH key issues
我有一个要推送到的 Amazon EC2 网络服务器。它的 SSH 连接使用没有密码的密钥进行身份验证。我已经像这样设置了本地机器的 ssh 配置文件
Host web
Hostname <path to host>
User ubuntu
IdentityFile <path to key>
IdentitiesOnly yes
当我这样做时
ssh web
我登录正常,但是当我尝试登录时
git push web
我明白了
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
在本地机器上
Connection closed by <local machine's IP> [preauth]
在服务器上的 ssh auth.log 文件中。我已经一遍又一遍地检查服务器和本地的 SSH 和 git 文件,我就是无法获取它。我可能缺少什么?
.git 本地配置为
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://<bitbucketpath>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "web"]
url = ubuntu@<server ip>:/home/ubuntu/git/test.git
fetch = +refs/heads/*:refs/remotes/web/*
repo 归 ubuntu 所有,这是将通过配置中指定的 ssh 登录的用户。
您的 ssh 配置块以 Host web
开头。当您使用 ssh 对此进行测试时,您 运行 命令 ssh web
。 SSH 在 ssh 配置文件中查找 "web" 的条目并使用这些参数。
但是,在 git 中,您的遥控器是
[remote "web"]
url = ubuntu@<server ip>:/home/ubuntu/git/test.git
fetch = +refs/heads/*:refs/remotes/web/*
在这里,您使用的不是主机名,而是 IP 地址。您需要更新您的 ssh 配置,以便它知道为此 IP 地址使用所需的参数,而不仅仅是主机名 "web"。只需将 IP 添加到您的 Host
条目。
Host web 1.2.3.4
(显然,用真实 IP 地址代替 1.2.3.4
。)
我有一个要推送到的 Amazon EC2 网络服务器。它的 SSH 连接使用没有密码的密钥进行身份验证。我已经像这样设置了本地机器的 ssh 配置文件
Host web
Hostname <path to host>
User ubuntu
IdentityFile <path to key>
IdentitiesOnly yes
当我这样做时
ssh web
我登录正常,但是当我尝试登录时
git push web
我明白了
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
在本地机器上
Connection closed by <local machine's IP> [preauth]
在服务器上的 ssh auth.log 文件中。我已经一遍又一遍地检查服务器和本地的 SSH 和 git 文件,我就是无法获取它。我可能缺少什么?
.git 本地配置为
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://<bitbucketpath>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "web"]
url = ubuntu@<server ip>:/home/ubuntu/git/test.git
fetch = +refs/heads/*:refs/remotes/web/*
repo 归 ubuntu 所有,这是将通过配置中指定的 ssh 登录的用户。
您的 ssh 配置块以 Host web
开头。当您使用 ssh 对此进行测试时,您 运行 命令 ssh web
。 SSH 在 ssh 配置文件中查找 "web" 的条目并使用这些参数。
但是,在 git 中,您的遥控器是
[remote "web"]
url = ubuntu@<server ip>:/home/ubuntu/git/test.git
fetch = +refs/heads/*:refs/remotes/web/*
在这里,您使用的不是主机名,而是 IP 地址。您需要更新您的 ssh 配置,以便它知道为此 IP 地址使用所需的参数,而不仅仅是主机名 "web"。只需将 IP 添加到您的 Host
条目。
Host web 1.2.3.4
(显然,用真实 IP 地址代替 1.2.3.4
。)