我在我的amazon ec2 ubuntu服务器实例上设置了一个git repo。我一直在尝试将代码从本地计算机上推送到服务器的repo上。我遵循的步骤是:
ssh-add /path/to/myEC2publickey
在我的EC2实例
上mkdir /path/my_project.git
cd /path/my_project.git
git init --bare
稍后在我的localhost上,
cd the_project
git init git add .
git commit -m "Initial git commit message"
git remote add origin username@hostname.com:the_project.git
git config --global remote.origin.receivepack "git receive-pack"
git push origin master
由于我在执行最后一个命令时遇到Permission Deined(公钥)错误(即git push origin master),我使用包含在论坛上的步骤设置公钥 -
ssh-keygen -t rsa -C "myemail@somedomain.com"
eval 'ssh-agent -s'
ssh-add
我能够添加公钥,但我仍然面临权限被拒绝(公钥):错误。
我是git的新手,并一直期待将我的所有代码转换为git repo。
非常感谢任何帮助。
答案 0 :(得分:5)
您似乎错过了(或未包含在您的说明中)的一步是在服务器端发布公钥。
上传您的公共ssh密钥并将其添加到~username/.ssh/authorized_keys
文件。
另外,首先使用没有密码短语的私钥(不需要将密钥添加到ssh代理中)来尝试(进行测试)
最后,请确保您的ssh密钥具有标准名称(id_rsa
和id_rsa.pub
),并提供正确的保护:
最后,ssh -Tvvv username@hostname.com
应该告诉你更多,如果前面的步骤没有解决问题。
答案 1 :(得分:2)
完整的程序是:
使用以下命令
将EC2公钥添加到ssh列表中ssh-add /path/to/myEC2publickey
使用以下内容在EC2实例上创建git存储库 命令
mkdir /path/my_project.git
cd /path/my_project.git
git init --bare
使用以下命令将系统上的本地文件连接到存储库 命令
cd the_project
git init
git add .
git commit -m "Initial git commit message"
git remote add origin username@hostname.com:the_project.git
git config --global remote.origin.receivepack "git receive-pack"
git push origin master
以用户身份创建公钥并将其添加到服务器 授权密钥
您可以通过从中复制文件id_rsa.pub来执行此步骤 localhost到服务器〜/ .ssh / authorized_keys文件,如中所示 上一个答案。
如果您尝试git push,请执行以下步骤后,不应出现“权限被拒绝”错误。