使用 ssh 从 AWS EC2 中的存储库进行 Git 克隆?

标签 git amazon-web-services amazon-ec2 ssh git-clone

在我的 EC2 实例上,我创建了一个 Rails 项目 (my_app),然后创建了它的存储库:

deploy@ip-ec2: ~/my_app$ git init  

(然后 git add-A,然后 git commit -m "initialized",一切就OK了)

还在该服务器中将我本地计算机的公钥:id_rsa.pub 添加到服务器端的文件authorized_keys 中。

现在在本地计算机中,我想克隆 ec2 中创建的存储库:

local@machine:~/repos$ sudo git clone ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d2b6b7a2bebdab92b7b1e0ffe2e3ffe2e2e5ffe7e1ffe3e1e6fcaaaaffb7b3a1a6ffe3fcb1bdbfa2a7a6b7fcb3bfb3a8bdbcb3a5a1fcb1bdbf" rel="noreferrer noopener nofollow">[email protected]</a>/~/my_app

本地机器输出:

Clonar en «my_app»...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我缺少什么?我应该更改服务器项目中的某些权限吗?

最佳答案

当您通过 SSH 连接到 EC2 节点时,您是否使用 ssh -i /path/to/key ?要在 EC2 节点上使用私钥,您需要设置 ssh-agent 并使用 -A 通过 SSH 连接转发它。开关。

如果您运行:ssh-add -l ,它应该显示代理已知的所有 key 。

$ ssh-add -l
4096 SHA256:xxxxxxxxxxxxxx /home/matt/.ssh/id_rsa (RSA)

如果您从 EC2 节点运行此命令而不转发代理,您将看到找不到代理,或者没有已知 key 。

在您的第一台主机上,使用上述命令检查代理是否正在运行。

如果它正在运行并且有您的 key ,那么您所需要做的就是前进。如果您没有运行代理,则只需运行 ssh-agent 即可启动一个新实例。 ,但是这将打印一些您需要运行的命令:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-jZBbs4yRG03w/agent.6708; export SSH_AUTH_SOCK;
SSH_AGENT_PID=16496; export SSH_AGENT_PID;
echo Agent pid 16496;

处理此问题的最简单方法是使用一个命令同时启动代理和评估:

$ eval `ssh-agent`
Agent pid 16496

现在添加您的 key (如果它们是默认路径/名称):

ssh-add
or
ssh-add /path/to/key

现在您可以将代理转发到您的 EC2 节点。

关于使用 ssh 从 AWS EC2 中的存储库进行 Git 克隆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53452022/

相关文章:

amazon-web-services - 我应该将我的 Spring Boot REST API jar 文件放在我的 Ubuntu EC2 实例上的什么位置?

git - 获取与 git push 相关的所有文件

php - Jenkins指南,用于构建,部署,配置和回滚,保留5个发行版

php - 来自 Amazon Linux 2 (Elastic Beanstalk) 的 Laravel artisan 修补匠

c# - AWS - 如何更改 AWSSDK for .NET 中的 cloudwatchclient 配置服务版本

linux - 为什么在 AWS EC2 实例的主目录中自动创建 '~' 波形符目录

eclipse - 我如何查看 EGit 中单个分支的历史记录以用于 eclipse

git - 如何在 GitLab CI 构建期间从私有(private) GitLab Git 仓库中提取 NPM 依赖项

amazon-web-services - 如何将现有 EC2 实例附加到 terraform 中的 Auto Scaling 组?

amazon-web-services - boto3 AWS 客户端忽略参数?