EC2 | SSH 有效,但 GIT 无效
EC2 | SSH works but GIT does not
我刚刚设置了一个 EC2 服务器,我正在尝试使用 git 将本地文件从我的机器推送到服务器。
在服务器上,我在 /home/ec2-user/
:
中初始化了一个 git 仓库
mkdir project.git
cd project.git
git init --bare
在客户端我使用以下命令:
git fetch origin master
导致错误:
Permission denied (publickey, gssapi-keyex, gssapi-with-mic).
fatal: Could not read from remote repository
Please make sure you have the correct access rights and the repository exists.
这是我本地存储库的配置文件的样子:(url IP 已更改问题)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com:project.git
fetch = +refs/heads/*:refs/remotes/origin/*
此命令有效:(我可以通过 ssh 登录)
ssh ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com
因为上面的命令有效,我认为我的 PEM 密钥不是问题,看看它如何让我通过 ssh 进入服务器。
以防万一,我会使用完整的存储库路径开始测试:
git remote set-url origin ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com:/home/ec2-user/project.git
这将确保 Git 正在查看您尝试访问的文件夹。
OP 在聊天中提到使用
ssh -i "ec2-ohio.pem" ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com
这意味着使用的私钥不是默认的%USERPROFILE%\.ssh\id_rsa
要Git使用,需要通过URL引用该键,%USERPROFILE%\.ssh\config
首先,在配置文件中,声明一个 ec2 条目(你可以随意命名,我使用的名字让我想起了远程服务器目标)
Host ec2
Hostname ec2-22-222-22-222.us-east-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ssh/ec2-ohio.pem
然后更改遥控器 URL 以使用该条目(及其关联的私钥)
git remote set-url origin ec2:/home/ec2-user/project.git
我刚刚设置了一个 EC2 服务器,我正在尝试使用 git 将本地文件从我的机器推送到服务器。
在服务器上,我在 /home/ec2-user/
:
mkdir project.git
cd project.git
git init --bare
在客户端我使用以下命令:
git fetch origin master
导致错误:
Permission denied (publickey, gssapi-keyex, gssapi-with-mic).
fatal: Could not read from remote repository
Please make sure you have the correct access rights and the repository exists.
这是我本地存储库的配置文件的样子:(url IP 已更改问题)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com:project.git
fetch = +refs/heads/*:refs/remotes/origin/*
此命令有效:(我可以通过 ssh 登录)
ssh ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com
因为上面的命令有效,我认为我的 PEM 密钥不是问题,看看它如何让我通过 ssh 进入服务器。
以防万一,我会使用完整的存储库路径开始测试:
git remote set-url origin ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com:/home/ec2-user/project.git
这将确保 Git 正在查看您尝试访问的文件夹。
OP 在聊天中提到使用
ssh -i "ec2-ohio.pem" ec2-user@ec2-22-222-22-222.us-east-2.compute.amazonaws.com
这意味着使用的私钥不是默认的%USERPROFILE%\.ssh\id_rsa
要Git使用,需要通过URL引用该键,%USERPROFILE%\.ssh\config
首先,在配置文件中,声明一个 ec2 条目(你可以随意命名,我使用的名字让我想起了远程服务器目标)
Host ec2
Hostname ec2-22-222-22-222.us-east-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ssh/ec2-ohio.pem
然后更改遥控器 URL 以使用该条目(及其关联的私钥)
git remote set-url origin ec2:/home/ec2-user/project.git